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

2

你可以点击这个链接,你也可以做一点谷歌。它真的很简单,您应该尝试一次。 使用 fgetc() 逐行读取 c 文件

于 2013-04-18T04:39:34.357 回答
1

使用fgets读取每一行使用sscanf将每一行的第一个和第二个元素保存到变量中测试数字是否 = 3,如果是则打印单词。

手册页应该为您提供使用fgetssscanf所需的所有信息

于 2013-04-18T09:33:37.590 回答
0

试试这个代码

void testFunc(int num)
{
     FILE *file = fopen ( "testfile.txt", "r" );
     char line [ 128 ]; /* or other suitable maximum line size */
    if ( file != NULL )
    { 
            while ( fgets ( line, sizeof(line), file ) != NULL ) /* read a line */
            {
               fputs ( line, stdout ); /* write the line */
            }
    fclose ( file );
    }
}
于 2013-04-18T04:39:04.270 回答
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 回答