【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※返信付き投稿の削除は禁止!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら


本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.23383

カンマ区切りの要素の取り出し
投稿者---GEN(2005/09/28 21:22:53)


OS windows2000 コンパイラ Visual C++ 6.0

"First.txt"ファイルに「125,34,0,45,aaa,980,ppp」という感じにカンマ区切りで数字と文字が並んでいます。
この場合だと、「34」と「0」という要素だけを取り出すにはどうすればよいでしょうか?
カンマで区切られた要素は、その時によって桁数や文字数が変わるので
最初のカンマを見つけ、その次の文字から、次のカンマが見つかるまでの部分を"youso1"に格納
二つ目のカンマを見つけ、その次の文字から次のカンマが見つかるまでの部分を"youso2"に格納
その二つの要素を fprintf(fp2,"%s\n%s",youso1,youso2);"
といった感じで"Second.txt"ファイルに表示する。
というような感じにしたく、とりあえず、下のソースでカンマだけを検索してみたんですが。
これ以上どうやったら良いのかわかりません。
そもそも下のソースが必要なのかもあやしい・・・・。
誰か力を貸してください。お願いします。

また、他にこんな方法を試してみれば?っていうような方法があれば
その方法も試してみるので、おしえてください。

main()
{
char buffer[256], string[256], youso1[50],youso2[50];
unsigned int i;
FILE *fp1, *fp2;

fp1 = fopen("First.txt","r");
fp2 = fopen("Second.txt","w");

while(fgets(buffer, 256, fp1))
{
for(strncmp(&buffer[i], "," , 1) == 0 )
{
strncpy(&string[0], &buffer[i], 1);
fprintf(fp2, "%s", string);
}
}
fclose(fp1);
fclose(fp2);
}





この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:カンマ区切りの要素の取り出し 23384 円零 2005/09/28 21:48:01


No.23384

Re:カンマ区切りの要素の取り出し
投稿者---円零(2005/09/28 21:48:01)


sscanfで %*[^,] とか %[^,] とかやればいいんじゃない?


この投稿にコメントする

削除パスワード

No.23385

Re:カンマ区切りの要素の取り出し
投稿者---RAPT(2005/09/28 22:17:03)


今回は、sscanf() がお奨めですが、別海としては、strtok() を使用する
方法もあります。(但し、若干制限がありますが。)



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧