我正在嘗試將字符文件讀入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添加一個換行符,使其不會被緩衝。在段錯誤之前你有多遠? – Dan
問題1:未檢查「fopen()」錯誤。問題2:什麼是「BUFFER_SIZE」,你確定「fscanf(write_msg [BUFFER_SIZE])」是否會超過它?問題3:你想要在循環中完成什麼?讀一個字符?閱讀一個字符串?閱讀一行?你如何控制正在閱讀的內容?我真的認爲你需要重新思考你的邏輯。恕我直言... – paulsm4
試圖讀取一行到數組中 –