在《C++primer》这本书的第八章P284页中,有如下代码:
ifstream inout(argv[1]);
ofstream output(argv[2]);
Sales_data total;
if (read(input, total)) {
Sales_data trans;
while (read(inout, trans)) {
if (total.isbn() == trans.isbn())
total.combine(trans);
else {
print(output, total) << endl;
total = trans;
}
}
print(output, total) << endl;
}
else
cerr << "NO data?" << endl;
而在练习8.4,代码如下:
int main() {
ifstream in("data"); //打开文件
if (!in) {
cerr << "无法打开输入文件" << endl;
return -1;
}
string line;
vector<string> words;
while (getline(in, line)) {
words.push_back(line);
}
in.close();
vector<string>::const_iterator it = words.begin();
while (it != words.end()) {
cout << *it << endl;
++it;
}
return 0;
}
我的问题是 为什么在p284的代码中 ifstream input (argv[1]);
没有加引号
而在8.4的练习中ifstream in("data");
包含引号?
问题有些简单,希望各位大神给解答一下,谢谢。
因为
argv[1]
是一个变量名。因为
"data"
是一个字符串常量。这就跟以下示例一个意思:
因为args[1]就表示一个字符串常量