C编程:从特定数字获取一行文本

时间:2014-01-29 09:27:21

标签: c

只需知道如何进行此计划:

用户输入一个数字(x) 程序打开文本文件并读取第x行。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

学习编写代码。这是你可以用来开始的东西

对于C ++

std::string line;
ifstream file("file.txt");
for(int i = 0; i < desired_line; ++i)
   getline(file, line);

对于C

cin>>line;
int ch, lines = 0;
while ((ch = getc(fp)) != EOF) {
if (ch == '\n') {
    lines++;
    if (lines == line - 1)
        break;
}
}

答案 1 :(得分:0)

使用此代码:

#include <stdio.h>
int main(void)
{
    int end = 1, bytes = 512, loop = 0, line = 0;
    char *str = NULL;
    FILE *fd = fopen("test.txt", "r");
    if (fd == NULL) {
        printf("Failed to open file\n");
        return -1;
    }
    printf("Enter the line number to read : ");
    scanf("%d", &line);

    do {
        getline(&str, &bytes, fd);
        loop++;
        if (loop == line)
            end = 0;
    }while(end);

    printf("\nLine-%d: %s\n", line, str);
    fclose(fd);
}

使用getline从文件中读取行并进行行计数。当行数符合所需的行停止读数时。

更多详情man getline