C++编程思想第6章 输入输出流缓冲 的一个例子
//: Stype.cpp
#include <fstream>
#include <iostream>
#include <assert.h>
using namespace std;
int _tmain(int argc, char* argv[])// 宽字符:如:wchar_t ch1[10], ch2[10], ch3[10];
{
assert(argc == 2);//Must have a command line
ifstream in(argv[1]);//改为ifstream in("Stype.cpp")可以通过后面的assert(in)
assert(in);//如果文件不存在则退出
cout<<in.rdbuf();//输出整个文件
return 0;
}
在命令行中输入:
c:\c++\projects\Stype\Debug\Stype.exe hello
结果显示:
Assertion failed: in, file c:\c++\projects\Stype\Stype\Stype.cpp, line 10
为什么每次在assert(in)这里都通不过呢?
问题应该是在 "ifstream in(argv[1]);" 这里,麻烦大神们指点一下 编程 c++ command
[解决办法]
命令行你应该传入一个文件名, 因为ifstream的参数是一个文件路径,hello应该不是一个文件吧。