如何从文件中提取部分行?

时间:2013-04-18 04:33:39

标签: c file

我是C的新手,很抱歉,如果这是一个愚蠢的问题,但我要说我有一个包含以下内容的文件:

1 abc
2 def
3 ghi

如果我传入一个像3(或字符?)这样的整数,函数将返回一个字符串“ghi”。我不知道如何实现这一目标。

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

        if(strstr??????
}

是的..我不知道我在做什么。任何人都可以提供任何指导吗?

4 个答案:

答案 0 :(得分:2)

你可以按照这个链接,你也可以做一点谷歌。 它非常简单你应该尝试一次。 Reading c file line by line using fgetc()

答案 1 :(得分:1)

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

手册页应该为您提供使用 fgets sscanf

所需的所有信息

答案 2 :(得分: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 );
    }
}

答案 3 :(得分: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;
}