【C&C++】指定行のみファイル書き込み
先ほどの質問に答えてくれた方ありがとうございましたm(_ _)m
後日(明日?)改めてお礼を書かせていただきます。
次の質問なのですが、(csv)ファイルを読み込み指定した行だけ(csv)ファイルに書き込むやり方です。
ファイルの内容は「文字列(1),文字列(12),数値(9),文字列(30)」となっており
0,000000000000,000000000,あああ
1,111111111111,111111111,いいいいい
2,222222222222,222222222,ううう
0,333333333333,333333333,えええええええええええええええ
のように並んでいます。
このとき、最初の文字列が'0'の時のみファイルに書き込むにはどのような処理を行えばよいのでしょうか?
どうかよろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
念のため
>書いてある条件下限定なら 上の部分を
と書きましたが
>ファイルの内容は「文字列(1),文字列(12),数値(9),文字列(30)」となっており
この数字部分がバイト数だとした場合の話です(サンプル見る限りではバイト数と判断しました)
文字数だったらsの配列不足csvファイルの内容次第でまともに動かない条件が発生します
(1文字 = 1バイトではないということを理解してれば判る話)
その辺りは自分で治してください
No.3
- 回答日時:
>while( ( ret = fscanf( fp, "%[^,],%d,%d,%f,%f", s, &n1, &n2, &f1, &f2 ) ) != EOF ){
>if (s == "test01"){
^^^^^^^^^^^^^^^^^^
>printf( "%s,%d,%d,%f,%f", s, n1, n2, f1, f2 );
>}
書いてある条件下限定なら 上の部分を
while( fgets( s, sizeof(s), fp ) != NULL) ){
>if (s[0] == '0'){
>printf( "%s", s );
>}
で十分のはず
書いてある条件外の条件が入ると色々問題箇所があります
>if (s == "test01"){
(C++ではあり得ますが)少なくても C の構文として
この条件に引っかかることはあり得ないはずです
strcmp関数を使うなどしてください
No.1
- 回答日時:
>次の質問なのですが、(csv)ファイルを読み込み指定した行だけ(csv)ファイルに書き込むやり方です。
どのような処理をするか、さっき投稿されている質問とまったく同じだと思うんですけど、
どこら辺で困っているのかを具体的に補足にどうぞ。
この回答への補足
csvファイル「comma.csv」の内容
test01,10,11,1.0,1.1
test02,20,21,2.0,2.1
test03,30,31,3.0,3.1
これは参考にしたどこかのサイトのもので、ファイル出力ではなく標準出力のやつなんですが、
#include <stdio.h>
int main(void)
{
FILE *fp;
char *fname = "comma.csv";
char s[100];
int ret, n1, n2;
float f1, f2;
fp = fopen( fname, "r" );
if( fp == NULL ){
printf( "%sファイルが開けません\n", fname );
return -1;
}
while( ( ret = fscanf( fp, "%[^,],%d,%d,%f,%f", s, &n1, &n2, &f1, &f2 ) ) != EOF ){
printf( "%s,%d,%d,%f,%f", s, n1, n2, f1, f2 );
}
fclose( fp );
return 0;
}
というソースに、if文で最初の文字列指定すればその列だけ出るのかなと思って下のように試してみたんですが何にも出力されなくなってしまいました。どのようにすればよいのでしょう?
#include <stdio.h>
int main(void)
{
FILE *fp;
char *fname = "comma.csv";
char s[100];
int ret, n1, n2;
float f1, f2;
fp = fopen( fname, "r" );
if( fp == NULL ){
printf( "%sファイルが開けません\n", fname );
return -1;
}
while( ( ret = fscanf( fp, "%[^,],%d,%d,%f,%f", s, &n1, &n2, &f1, &f2 ) ) != EOF ){
if (s == "test01"){
^^^^^^^^^^^^^^^^^^
printf( "%s,%d,%d,%f,%f", s, n1, n2, f1, f2 );
}
}
fclose( fp );
return 0;
}
お忙しいでしょうがどなたかお願いしますm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あるあるbotに投稿したけど採用されなかったあるある募集
あるあるbotに投稿したけど採用されなかったあるあるをこちらに投稿してください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
ファイル書込みで一行もしくは部分的に上書きする
PHP
-
読み込み中にアクセス違反が発生しました、と出ます。これを回避することは
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
OpenDialog1->FileNameについて
-
graph.hない。
-
error C2065: error C2057: が...
-
Cコンパイル時のマルチデファイ...
-
アプリケーション終了時例外エ...
-
ShellExecuteEx→WaitForSingleO...
-
C言語初心者の質問失礼します。
-
VBSでファイルを開く
-
C++書式について
-
ファイルを開かずにカスタムド...
-
CSVファイルの入出力と計算
-
C言語のfopenについて教えてく...
-
【C#】リソースファイルの埋め...
-
csvファイルを開かずに文字を検...
-
iniファイルに追記がしたいです。
-
ファイル名の先頭にアンダース...
-
CSVファイルへの保存の際、デー...
-
SGファイルって何ですか?
-
perl seek関数について
-
フリーソフトウェアでflaファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
テキストファイルの最終行を削...
-
CSVファイルへの保存の際、デー...
-
VBに、Cのincludeのようなもの...
-
分割コンパイルの#defineについて
-
SGファイルって何ですか?
-
グローバル変数のよくない使い...
-
Excelマクロでの再読込み方法
-
iniファイルに追記がしたいです。
-
ASP .NETでファイル選択ダイア...
-
ハッシュの計算時間について
-
バッチで118項目のCSVを処理し...
-
FileOpen 関数で既にファイル...
-
Javascript で INI の読み書き
-
fopenできる上限の変更
-
VBAにてEXCEL以外のファイル(テ...
-
マウスポインタの変更
-
C言語のfopenについて教えてく...
おすすめ情報