0

私は C にまったく慣れていないので、これがばかげた質問である場合は申し訳ありませんが、次の内容を含むファイルがあるとします。

1 abc
2 def
3 ghi

3 のような整数 (または文字?) を渡すと、関数は "ghi" の文字列を返します。これを実現する方法がわかりません。

void testFunc(int num)
{
        FILE *fp;
        fp = fopen("testfile.txt", "r"); 

        if(strstr??????
}

うん..私は何をしているのか分かりません。誰でもガイダンスを提供できますか?

4

4 に答える 4

1

fgetsを使用して各行を読み取ります。sscanfを使用して、各行の最初と 2 番目の要素を変数に保存します。数値が 3 かどうかをテストし、そうであれば単語を出力します。

man ページには、 fgetssscanfを使用するために必要なすべての情報が記載されています。

于 2013-04-18T09:33:37.590 に答える
0
//input:num, output:string, string is call side cstring area.
void testFunc(int num, char *string){
    FILE *fp;
    int n;

    fp = fopen("data.txt", "r"); 
    while(2==fscanf(fp, "%d %s ", &n, string)){
        if(num == n){
            printf("%s\n",string);
            break;
        }
    }
    fclose(fp);
    return;
}
于 2013-04-18T07:41:39.500 に答える