簡體   English   中英

C ++打開.txt文件並讀取數字以放置在數組中

[英]c++ open .txt file and read numbers to place in an array

我有一個文本文件,其中一行上的數字像(逗​​號之間沒有空格):

    -1,5,-3,10,500000,-6000

到目前為止,這是我所擁有的代碼,但是我在向量數組中什么都沒有得到

fstream fp;
vector<int> numbers;
int number;

fp.open("numbers.txt", ios::in | ios::binary);

if(fp.is_open()){
  while(fp >> number){
     numbers.push_back(number);
  }
}

fp.close();

cout << "Numbers:\n";
for (int i=0; i < numbers.size(); i++) {
    cout << numbers[i] << '\n';
}

我覺得我只是不正確地讀取文件,或者整行只是放入數字var中。 另外,文件中的數字數量未知,所以我想避免對其進行硬編碼

fstream fp;
vector<int> numbers;
int number;

fp.open("numbers.txt", ios::in | ios::binary);

if(fp.is_open()){
  while(fp >> number){
     numbers.push_back(number);
     fp.get();
  }
}

fp.close();

cout << "Numbers:\n";
for (int i=0; i < numbers.size(); i++) {
    cout << numbers[i] << '\n';
}

您只是忘記了逗號! 使用fp.get(); 擺脫它們,然后它將正常工作:D

首先,您的輸入文件不是二進制文件-不要使用ios::binary

其次,您需要拆分輸入令牌。 每次遇到逗號時,輸入操作都會失敗。 您可能需要輸入字符或字符串來處理這些字符或字符串。

當您嘗試將,插入整數時,您的輸入將失敗。 您應該使用getline插入值直到逗號分隔符:

while (std::getline(fp, number, ','))
//     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

像這樣

if(fp.is_open()){
  while(fp >> number){
     numbers.push_back(number);
     char dummy_variable_for_the_comma;
     fp >> dummy_variable_for_the_comma; // read and discard a comma
  }
}

您必須告訴計算機跳過逗號,它不會幫您這樣做。

暫無
暫無

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

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