簡體   English   中英

如何檢查空行?

[英]How To Check empty Lines?

我的input.txt文件:

4

4

5 0 1 2
1 4 0 0
1 1 5 4
0 6 3 2

0 4 1 2
1 7 5 0
2 3 5 6
0 6 2 2

1:0 4 2 0

我現在的程序:

#include <iostream>
#include <fstream>
#include <string>
#include <stdlib.h>
#include <sstream>
using namespace std;

int main()
{
ifstream File("input.txt");
string line;
string num;
string array[50];
string comma;
int i=0;
    while (getline(File,line)) {

        comma="";
        istringstream s(line);

        if (line.empty()){

            comma=",";
            s >> num ;
            array[i] =  comma;
        }

        else {
            s >> num ;
            array[i] =  num;
        }
        i++;

    }        
return 0;
}

好吧,我的程序沒有給我我想要的東西! 當我打印array [i]時,只給我第一列中的數字! 像這樣 :

4
,
4
,
5
3
1
7
,
0
1
2
6
,
1:0

我想做的是在任何空行處放置一個逗號,這樣我就可以區分這些數字並將它們存儲在一個整數數組中,以便在它們之間進行數學運算

解釋我的input.txt文件:

輸入文件中的數字和矩陣大小可以由我更改。

4 <= #number of items 

4 <= #types of items

5 0 1 2 <= matrix #1
1 4 0 0
1 1 5 4
0 6 3 2

0 4 1 2 <= matrix #2
1 7 5 0
2 3 5 6
0 6 2 2

1:0 4 2 0 <= Available numbers for item #1 

我想:

  1. 在變量中存儲項目數。

  2. 將項目類型存儲在變量中。

  3. 矩陣#1矩陣#2存儲2個數組中,然后在矩陣#1和矩陣#2之間進行減法 運算。

能做到嗎? 或者有沒有更簡單的方法來區分這些數字並將它們存儲在變量和內部數組中?

問題很簡單。

您使用以下命令讀取了一行數據

while (getline(File,line)) {

但是然后您只處理該行中的一個元素:

    if (line.empty()) {
        ...
        s >> num ;
        ...
    }
    else {
        s >> num ;
    }

您只需要將if ... else語句放入某種循環中即可。

另外,我不理解該if語句的第一個分支:如果line為空,則s不應該讀取任何內容。

因此,稍作修改,它應該更接近您要查找的內容(我沒有嘗試過查看它是否確實有效):

    ...
    while (getline(File,line)) {
        if (line.empty()) {
            array[i] = ","
            ++i;
            continue;
        }
        istringstream s(line);

        while(s >> num) {
            array[i] =  num;
            ++i;
        }
    }        
    return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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