#include <iostream>
#include <string>
#include <fstream>
#include <cstring>
using namespace std;
int main(){
char a;
cout << "give me the filename: ";
cin >> filename;
ifstream caroll;
caroll.open(filename.c_str());
while (a=caroll.get() && !caroll.eof()){
cout << a << " ";
}
caroll.close();
}
我的输出充满了怪异的字符。它们就像是填充了2 0和2 1的小方块。
答案 0 :(得分:5)
请打开编译器警告级别。这里有一个错误:
while (a=caroll.get() && !caroll.eof()) {
这被解释为:
while (a = (caroll.get() && !caroll.eof()) ) {
^ ^
您需要在作业周围添加括号:
while ((a = caroll.get()) && !caroll.eof() ) {
^ ^
海湾合作委员会对此发出警告。
(注意:请发布已编译的代码,您的示例中未声明filename
,并且当您应该包含cstring
时,您应包含string
。)