代码从C中的文本文件中读取几行

代码从C中的文本文件中读取几行,c,scanf,C,Scanf,我想创建一个程序,从一个有9行的文本文件中读取前3行。请用下面的代码帮助我,并指出我做错了什么 此外,是否可以读取文本文件中的3-6行 谢谢你的帮助 char name1[20], name2[20], name3[20]; FILE *fp = fopen("names.txt", "r"); while(3 == fscanf(fp, "%20[^\n]%*c%20[^\n]%*c%20[^\n]%*c", name1, name2, name3)){ printf("%s, %s,

我想创建一个程序,从一个有9行的文本文件中读取前3行。请用下面的代码帮助我,并指出我做错了什么

此外,是否可以读取文本文件中的3-6行

谢谢你的帮助

char name1[20], name2[20], name3[20];
FILE *fp = fopen("names.txt", "r");
while(3 == fscanf(fp, "%20[^\n]%*c%20[^\n]%*c%20[^\n]%*c", name1, name2, name3)){
    printf("%s, %s, %s\n", name1, name2, name3);
}
fclose(fp);

每当您发现自己用数字后缀命名变量时,您可能都应该使用数组。因此,使用二维数组代替三个数组
name1
name2
name3

#define LINES 3
#define LINESIZE 20
char name[LINES][LINESIZE];
然后你可以在一个循环中读这些行,改变行数就很容易了

for (int i = 0; i < LINES; i++) {
    if (fgets(name[i], LINESIZE, fp) == NULL) {
        break;
    }
    // Remove trailing newline if it's there
    size_z len = strlen(name[i]);
    if (name[i][len-1] == '\n') {
        name[i][len-1] = '\0';
    }
}
for(int i=0;i