我是新來的文件I/O流,我想編寫一個程序,它轉換字符(由「texti.txt」讀),如「A,A,U,U ,ö,Ö「到」ae,Ae,ue,Ue,oe,Oe「並將它們寫入一個名爲」texto.txt「的新文件中。文件I/O:兩種文件pointes的
第一個問題: 可以像我一樣在同一時間有兩個文件指針(在每個文件上)可以嗎?
第二個問題: 我在做什麼錯誤的字符比較在switch語句? VS2015警告說箱子2和3已經存在(參照情況1)
Thirt問題 是否fpo
(文件指針到輸出文件)自動writig炭遞增本身?
問題四: VS2015警告:
C4996 '的fopen':此函數或變量可能是不安全的。考慮使用fopen_s代替。要禁用棄用,請使用_CRT_SECURE_NO_WARNINGS。詳細信息請參見在線幫助。
我應該使用另一個函數嗎?
int main()
{
char c;
FILE *fpi;
FILE *fpo;
fpi = fopen("texti.txt","r");
fpo = fopen("texto.txt", "w");
if (fpi == NULL)
fprintf(stderr, "Fehler beim Lesen");
while (!feof(fpi))
{
c = fgetc(fpi);
switch (c)
{
case 'ä'||'Ä':
fputc('a', fpo);
fputc('e', fpo);
break;
case 'ö'||'Ö':
fputc('o', fpo);
fputc('e', fpo);
break;
case 'ü' || 'Ü':
fputc('u', fpo);
fputc('e', fpo);
break;
default:
fputc((c), fpo);
}
fpi++;
}
fclose(fpi);
fclose(fpo);
}
您認爲,fpi ++會做什麼?另外,'c'應該是一個'int',你不檢查你的第二個'fopen'的結果。 – pzaenger
一次一個問題。 –
'foef' does [not work](http://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-wrong),正如你顯然期望的那樣。還要注意非ASCII字符編碼。這很可能無法按預期工作。至少你需要'char16_t'或'char32_t'來做到這一點。 – Olaf