我写了一个短代码,应该将文件的内容复制到初始化的字符串数组中,然后打印该数组。我没有收到任何错误/警告,但运行该程序时仍无法打印任何内容。代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
const int dim = 30;
int main() {
char* arr[dim];
int i = 0;
FILE* fp;
fp = fopen("test.txt", "r+");
if(fp == NULL) {
printf("\nError, breaking...");
return 0;
}
while(i <= dim) {
arr[i] = (char *)malloc(dim*sizeof(char *));
++i;
}
i = 0;
while(fscanf(fp, "%s", arr[i]) != EOF) {
printf("%s: added\n", arr[i]);
++i;
}
}
该文件包含一系列单词,这些单词仅由空格和换行符分隔。
答案 0 :(得分:1)
正确的关注者,看看是否有帮助
1)将i初始化为0,即。 i = 0;
2)
while(i < dim) { } // it should be < as array start with 0