你好,我的程序設計爲在文本文件中對記錄進行排序,但我的主要問題是獲取主要功能,詢問用戶是否想運行再次編程讀取和寫入另一個文件。我的程序現在,當用戶輸入1再次運行時,跳過第一個問題進入程序讀取。這是爲什麼?我感謝幫助!這裏只是我的主要功能:程序僅在第一次運行時編譯。C程序:Do-while循環再次運行程序無法正常工作
int main()
{
int fieldCount = 0;
int lineCount = 0;
char file[STR_LEN];
char filepath[STR_LEN];
char** fields = NULL;
char** lines = NULL;
int recCount = 0;
Person **sortedRecs = NULL;
int x;
do {
printf("Enter path of the file to read: ");
gets(filepath);
printf("Enter path to copy to: ");
gets(file);
fields = readFieldsDynamic(filepath, &fieldCount);
lines = readLinesDynamic(filepath, &lineCount);
recCount = getPersons(fields, fieldCount, &sortedRecs);
if (recCount && lines && sortedRecs && (recCount <= lineCount)) {
writeRecsToFile(file, sortedRecs, recCount, lines, lineCount);
printf("Sorted records are written in %s\n", file);
}
if (fields) {
freePointerToChars(fields, fieldCount);
}
if (lines) {
freePointerToChars(lines, lineCount);
}
if (sortedRecs) {
freeRecs(sortedRecs, recCount);
}
printf("Enter 1 to run program again: ");
scanf("%d%*c", &x);
} while (x == 1);
return 0;
}
我發佈的主要功能只是因爲我沒有東西的功能和結構有效果它正確循環 – Benny
請參閱[這裏](http://stackoverflow.com/questions/5240789/scanf-leaves-the-new- line-char-in-buffer) –
謝謝@ user3121023!它解決了我的問題! – Benny