【发布时间】:2017-09-16 14:54:06
【问题描述】:
首先,如果另一个主题与我的问题相关,我很抱歉,但我无法找到合适的主题。
我会尽量说清楚。
我正在实现一个课程项目,需要大约 10 个完整的文本文件将它们保存在一个数组中,然后处理数据。 (治疗不是问题)
我使用 fgets 来获取所有行,我将 s“字符串”传递给 char$ []
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int* argc, char* argv[]){
char* c = "./example.txt";
char s[500];
char* lignes[100];
int sizeLignes = 0;
printf("%s \n\n", c);
FILE* myFile = NULL;
myFile = fopen(c, "r");
if (myFile != NULL){
int n;
while ( fgets(s, 500, myFile) != NULL ){
printf("%d \n\n", sizeLignes);
lignes[sizeLignes] = s;
printf("%s", lignes[sizeLignes]);
sizeLignes++;
}
printf("%s", lignes[1]);
printf("%s", lignes[2]);
printf("%s", lignes[3]);
}else{
printf("Wrong file");
}
fclose(myFile);
return 0;
}
我的 s 变量很好,如果我每次循环都打印它,那很好。
如果我在循环内打印lignes[sizeLignes],那也很好。
如果我尝试将值打印在外面...就像保留最后 4 个单词或类似的东西。
有什么想法吗?
您需要更多信息吗?
提前致谢,
伊齐奥
【问题讨论】:
-
您需要将字符串复制到数组中。您仅将指向
s的指针存储在数组中,然后在下一次循环迭代中覆盖s。