【发布时间】:2012-10-01 05:08:07
【问题描述】:
我正在尝试将字符文件读入 64 个字符的数组。文件读取发生在main()
int main (int argc, char **argv)
{
FILE *fp;
char write_msg[BUFFER_SIZE];
fp = fopen("test.data", "r");
int i;
for ( i = 0; i < (BUFFER_SIZE-1); i++){
fscanf(fp, "%s\n", &write_msg[i]);
printf ("printing in the for loop");
}
fclose(fp);
printf("Starting the main().\n");
printf("in Reader, the msg is: %s\n",write_msg);
pid_t pid;
int fd[2];
我不断收到段错误,我不确定自己在做什么
【问题讨论】:
-
在 for 循环中的 printf 中添加一个换行符,这样它就不会被缓冲。在段错误之前你能走多远?
-
问题 #1:不检查“fopen()”错误。问题#2:什么是“BUFFER_SIZE”,你确定“fscanf(write_msg[BUFFER_SIZE])”不会超过它吗?问题#3:你到底想在你的循环中完成什么?读一个字符?读取字符串?读一行?你如何控制正在阅读的内容?老实说,我认为你需要重新考虑你的逻辑。恕我直言...
-
试图将一行读入数组
标签: c arrays file file-upload segmentation-fault