Maison > Questions et réponses > le corps du texte
在《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");
包含引号?
问题有些简单,希望各位大神给解答一下,谢谢。
天蓬老师2017-04-17 13:42:32
为什么在p284的代码中
ifstream input(argv[1]);
没有加引号?
因为argv[1]
是一个变量名。
而在8.4的练习中
ifstream in("data");
包含引号?
因为"data"
是一个字符串常量。
这就跟以下示例一个意思:
string abc("s");
string s1("abc"); // s1 == "abc"
string s2(abc); // s2 == "s"