簡體   English   中英

為什么提取操作員不起作用?

[英]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是一個字符串流。 nCasescreditnItems只是 int 變量。 讓我感到困惑的是,當我得到nCases時提取運算符如何按預期工作,但一旦我試圖檢索creditnItems的值就停止工作。

而不是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM