- ベストアンサー
fgetsで拾われる改行文字を削除したい
お世話になります C言語初心者のものです。今課題でC言語を用いたプログラミングを Fedora上でやっています。問題は、fgetsでテキストファイルから、取得 した文字列の中から改行文字を削除できないことです。文字変数のアド レスはわかっているのですが、終端文字に置換しようとすると、セグメ ントエラーになってしまいます。これは如何にして解決すべきでしょう か。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- 和泉 博(@hiroshi09s)
- ベストアンサー率54% (59/109)
- D-Matsu
- ベストアンサー率45% (1080/2394)
- kmee
- ベストアンサー率55% (1857/3366)
関連するQ&A
- 改行文字を消す方法を教えて頂けませんか。
こんにちは。 C言語で、改行まで文字列として格納した変数から、改行のみを削除する事は可能でしょうか。構想としては、 char *str = "text改行" ↓ 改行部分を削除 ↓ str == "text" になるのがベストです。 良い方法をご存知であれば教えて頂けないでしょうか。どうぞよろしくお願いします。
- ベストアンサー
- C・C++・C#
- fgetsの使い方
C言語を今日から始めたじいさんです。 宜しくお願い致します。 メモ帳を使って3行ほどの文字列を入力して、text.txtファイルに保存します。 この文字列を読み込んで、1行ずつ印刷しようとしていますが fgetsでtxtファイルの終了条件がわかりません。 while(fgets(row , sizeof( row ) , fp) != NULL){ printf("%s\n , row); } fclose( fp ); return 0; のようにしているのですが、3行印字処理をして異常終了してしまいます。 本に出ている例をそのまま実行しているのですが、うまくいきません。 txtファイルをダンプしてみると各行の後ろに0d 0aたぶんCR,LFが入っていてNULL=00(?)はありません。テキストファイルの作り方に問題があるのでしょうか? それともfgetsの使い方に誤りがあるのでしょうか?
- ベストアンサー
- C・C++・C#
- fgetsを使って入力した文字列を読み込む。
こんにちは。私は30代の男性です。 上司から、「C言語でコーディングする際にscanfは使わずにfgetsを使うように」との指示があったのですが、scanfしか使ったことがないので、具体的にどうコーディングすればいいのかわかりませんでした(聞いても教えてもくれず…)。どのようにすればfgetsを使って入力した文字列を読み取れるのか、わかる方がいらっしゃれば簡単な例文で教えて頂けるとありがたいのですが。 どうぞ宜しくお願い致します。
- ベストアンサー
- C・C++・C#
- 文字列の読み込みに関して
C言語で、fgetsを使って文字列ファイルから読み込みを行うと、改行もしくは指定した文字列が来ると読み込みを、止めますが途中で改行が来ても読み飛ばして。(丸)までを読み込むようにするには、どのようなコードを書けばいいのですか? 別に使う関数は、これ以外でもいいのでコードを教えてもらえますか? お願いします。
- ベストアンサー
- C・C++・C#
- fputで出力した文字列を改行するには?
PHP初心者です。 いくつかの文字列変数をテキストファイルに書き出す処理を行いたいのですが、うまく動作してくれません。 文字列変数 $str_a, $str_b, $str_cをカンマで区切ってテキスト1行でファイルに書き出しています。 $str = $str_a . ',' . $str_b . ',' . $str_c . '\\r\\n'; fputs($fp, $str); 上の2行がループで数回呼ばれた後、ファイルをクローズしているのですが、実際に作成されたテキストファイルを見ると a1,b1,c1\r\na2,b2,c2\r\n....みたいに改行が入らず"\r\n"という文字列があるだけです。希望しているのは a1,b1,c1 <-ここで改行 a2,b2,c2 <-ここも改行 という結果なのですが.... よろしくご教授お願いいたします。
- ベストアンサー
- PHP
- 文字+改行コードの置換について
文字+改行コードの置換についてご教授ください。 テキスト内の数字「9」とそれに続く改行コードのみ置換(削除)対象にしています。 全ての改行コードが対象ではないため、下記のようにエディタ(sakuraエディタ)で指定しました。 置換前: 9\r\n ※削除したいため、置換後の欄は空欄にしています。 しかし、この設定だと置換前の文字列を置換対象として認識しません。(検索対象としても) \r\n だけだと改行コードを認識するので、文字と改行コードのセットを認識していないようです。 指定に誤りがあるのでしょうか。詳しい方ご教授お願いします。
- ベストアンサー
- その他MS Office製品
- ファイルから読み取った改行文字を消す方法
C言語のプログラムから、テキストファイルを読み込むと、改行文字が・になってしまい、なんだか汚くみえてしまいます。 なので、ファイルから読み取った改行文字を消す方法が知りたいです。教えて下さい。
- ベストアンサー
- C・C++・C#
- fgetsでバッファ残留文字列を無視して読み込む
お世話になります。 早速質問させていただきます。 言語はC++です。 ファイルに、以下の文字列があったとします。 ============================ 123456789012 12345678901 1234567890 123456789 ============================ この時、 fgets( str, 10, fp); printf("str (%2d)= %s\n", strlen(str), str); を、EOFになるまで繰り返します。 すると、実施結果は ============================ 123456789 012 123456789 01 123456789 0 123456789 ============================ となります。 これは、fgetsで10というレングスを指定しているために、1行読み込んで、10文字以降の文字列はバッファに残ってしまっているため、 2度目のfgetsで、10文字以降の文字列が読み込まれ、書き出されているものと思われます。 この時、fgetsで1行読み込んだ後、バッファに残った文字列を無視し、2度目のfgetsで、2行目を読み込むにはどうしたらよいでしょうか? 有識者の方、ご教授ください。よろしくお願いします。
- ベストアンサー
- C・C++・C#
- Javaなどのプログラミング言語を使用して、テキスト(.txt)の書き
Javaなどのプログラミング言語を使用して、テキスト(.txt)の書き換えをしたいのですが... Javaなどのプログラミング言語を使用して、テキスト(.txt)の書き換えをしたいのですが、 どのようなプログラムを作ればよいかわかりません... ただ文字列置換するだけではなく、文字列の一部を変数として使いたいです! たとえば、 元のファイルで、 xyz(1, 1) = -.589500D+00 xyz(2, 1) = 0.387000D+00 xyz(3, 1) = -.168750D+01 とあったときに、変数n,x,dを用いて、xyz(1, n) = xDdという感じで読み込みたいのですが。 読み込んだ後は文字列を置換して、n,x,dをしようしたいと考えています。 どなたかやり方をご存知でしたら、どうか教えてください。 よろしくお願いします。
- ベストアンサー
- Java
- 改行コードを削除出来ない
エクセルファイルのセルに文字列が大量に入ってます。1セル当たりは4,5文字です。 文字列の後ろに改行コードが付いてるようのです。 改行コードだと思った理由 ・LEN(セル)で文字数を表示させると、見た目より1文字多い ・セルを選択し画面上部の編集ボックス?で文字列の後ろをカーソルでクリックし、 左矢印←を押すと、2回押しで動く。いかにも見えない一文字があるかのように動く ・文字列後ろをクリックしバックスペースを押すと←による動きが正常になる 取った対策 セルをいくつか選択し、置換処理で削除しようとしたが、削除出来なかった。 検索文字列: 改行コード(ctrl+J) 置換文字列: なし バックスペースキーで解消出来ますが、全セルで行うには数が多過ぎます。 置換操作でなぜ削除出来なかったのでしょうか?改行コードではないのか?とも疑ってます。 非常に小さいスペース? どうすれば全部削除出来るでしょうか?
- ベストアンサー
- Excel(エクセル)
補足
解答ありがとうございます。 ご指摘のとおり、終了条件の記述が不足していました。たぶんこれが原因 だったと思います。用語の言い回は勉強しなおします。また配列の書き方に ついては、参考にしていたサイトで多かった書き方で書いたのですが、自分 も配列を用いて書いた方が好きなので、配列を使用して書くことにします。 適切な指摘をありがとうございます。