我已经阅读了有关此内容的所有内容,但仍然不知道如何执行此操作。我正在尝试逐行读取 .txt 并将其放入数组中。我认为我的代码有点工作,但是当我尝试打印数组时它不允许我这样做。
#include<stdio.h>
#include<stdlib.h>
#include<omp.h>
int main(){
char s[20],*list[196][20];
int i;
FILE *lista;
lista=fopen("lista.txt","r");
i=0;
while(feof==0){
getline(list[i],0,lista);
i=i+1;
printf("%s\n",list[i]);
}
for(i=0;i<195;i++){
//printf("%s\n",list[i]);
}
fclose(lista);
}
之所以有 2 个打印是因为我尝试了两种方法来看看是否可以修复它。 知道我做错了什么吗? 我得到的错误是“格式‘%s’需要‘char *’类型的参数,但参数 2 的类型为‘char**’
最佳答案
将 list 声明为 char 指针数组 20 的数组 196 的原因是什么?该代码看起来更可靠。
int main ( void )
{
static const char filename[] = "lista.txt";
FILE *file = fopen ( filename, "r" );
char list[196][20];
int i = 0;
if ( file != NULL )
{
char line [ 128 ]; /* or other suitable maximum line size */
while ( fgets ( line, sizeof line, file ) != NULL ) /* read a line */
{
strcpy( list[i], line ); /* copy the line into list */
fputs ( line, stdout ); /* write the line */
++i;
}
fclose ( file );
}
else
{
perror ( filename ); /* why didn't the file open? */
}
return 0;
}
关于c - 如何在 C 中逐行读取 .txt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40579904/