我試圖讀取多個文件。該文件的格式將類似於YYYY-mm-dd-HH-MM.txt
和例如2012-11-26-18-50.txt
C - 使用sprintf讀取文件
東西,我有以下代碼
char text_buffer[1000];
char file_buffer[256];
int year, month, day, hour, minute;
year = 2012; month = 11; day = 26; hour = 18; minute = 0;
sprintf(file_buffer, "%d-%d-%d-%d-%d.txt", year, month,day,hour,minute);
FILE *ptr_file;
ptr_file=fopen(file_buffer, "r");
if(ptr_file != NULL)
printf("File opened %s for reading.\n", file_buffer);
else
printf("Couldn't open %s.\n", file_buffer);
line_number = 0;
while(fgets(buffer,sizeof(buffer), ptr_file) != NULL){
if(strcmp(buffer, "")==0)
return 0;
char *views = strok(buffer, ",");
...
}
我假定這就是所需要的所有信息。如果現在還不清楚我的問題在哪裏,我會將其全部發布。 當我運行程序。我同時獲得 Filed opened...
和Couldn't open...
。然後是分段錯誤。
有人可以幫我解決這個問題嗎?
謝謝。
你想通過sprintf()調用來實現什麼?你想創建一個文件名? – Marvo
實際上,對sprintf()的調用將嘗試寫入由file_buffer指向的內存位置,並且您尚未初始化它。所以會出現分段錯誤或其他錯誤。 – Marvo
文件是否真的存在? –