[英]Why is the extraction operator not working?
我在 Google 的 Code Jam 中嘗試了一些問題。 對於Store Credit問題,我在 C++ 中有以下代碼:
if (input.is_open()) {
getline(input, line);
ss << line;
ss >> nCases;
for (int i = 0; i < nCases; i++) {
getline(input, line);
ss << line;
ss >> credit;
cout << credit << endl;
getline(input, line);
ss << line;
ss >> nItems;
cout << nItems << endl;
int list[nItems];
}
input
是文本文件(一切都已正確初始化), line
是一個字符串變量,用於保存從文本文件中新提取的行,而ss
是一個字符串流。 nCases
、 credit
和nItems
只是 int 變量。 讓我感到困惑的是,當我得到nCases
時提取運算符如何按預期工作,但一旦我試圖檢索credit
和nItems
的值就停止工作。
而不是ss << line;
,用ss.str(line); ss.clear();
ss.str(line); ss.clear();
如果這些只是每行的整數,那么為什么不使用atoi
if (input.is_open()) {
getline(input, line);
nCases = atoi( line.c_str() );
for (int i = 0; i < nCases; i++) {
getline(input, line);
credit = atoi( line.c_str() );
cout << credit << endl;
getline(input, line);
nItems = atoi( line.c_str() );
cout << nItems << endl;
int list[nItems];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.