我面臨C++和C的問題,其中我的ifstream對象或文件指針不能正確讀取文本文件,並在輸出時顯示非法字符。但是,當我讀取.dat文件時,它會輸出正確的結果。Turbo C++編譯器沒有正確讀取文本文件。 (只有當我把它做成一個.dat文件時,它是否正確讀取)
這是C代碼:
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
void main() {
FILE *file;
char ch;
file = fopen("code.dat", "r");
while((ch = getc(file)) != EOF)
printf("%c", ch);
getch();
fclose(file);
}
這是CPP代碼:
#include <fstream.h>
#include <iostream.h>
#include <conio.h>
#include <string.h>
int main() {
clrscr();
fstream file;
file.open("code.dat", ios::in);
char ch, c;
char token[6];
int id = 0, op = 0, key = 0;
while (!file.eof()) {
file >> ch;
if(ch == ' ') {
if ((ch > 64 && ch < 91) || (ch > 96 && ch < 123))
id += 1;
}
}
cout << id;
file.close();
getch();
return 0;
}
Turbo C++是一個古老的編譯器,已停止支持。它在語言標準化之前使用C++方言。如果你想學習C++,它的用法就是升級到現代。 GCC和Clang是不錯的選擇。 – StoryTeller
「我正面臨C++和C的問題,我的ifstream對象在哪裏」 - 您不知道。 C沒有「ifstream對象」。這是一種完全不同的語言! – Olaf
[爲什麼不用Turbo C++編譯簡單的「Hello World」風格的程序?](https://stackoverflow.com/questions/44863062/why-doesnt-a-simple-hello-world-style -program-compile-with-turbo-c) –