我正在從一個文件讀取string
C++程序工作。在string
的末尾有一些數字。我的任務是顯示字符串末尾的nth
數字。字符串在c + +運行時錯誤
這是我的代碼。該程序接受文件的路徑:
#include<iostream>
#include<fstream>
#include<string>
#include<stdlib.h>
using namespace std;
int main(int argc,char** argv)
{
ifstream file;
int num,i=0,pos;
std::string lineBuffer;
file.open(argv[1],ios::in) ;
while (!file.eof())
{
getline(file, lineBuffer);
if (lineBuffer.length() == 0)
continue; //ignore all empty lines
else
{
pos=0;
std::string str1("");
std::string str2("");
std::string final("");
std::string number("");
std::string output("");
while(pos!=(-1))
{
pos=lineBuffer.find(" ");
str2=lineBuffer.substr(0,1);
lineBuffer=lineBuffer.substr(pos+1);
final+=str2;
i++;
}
number=final.substr((i-1));
num=atoi(number.c_str());
output=final.substr(i-(num+1),1);
cout<<output;
}
}
file.close();
return 0;
}
我的程序給出了文件中第一行的正確輸出。但之後,它給我一個運行時錯誤。我不知道爲什麼會發生這種情況。
我向終端發送的文件包含:
a b c d 4
b e f g 2
什麼是操作系統? – 2013-03-14 16:51:27
什麼是錯誤? – 2013-03-14 16:51:52
首先,您應該在調試器中運行您的程序。這會告訴你_哪裏錯誤是。它也可以讓你檢查變量,所以你可能會發現_what_會導致錯誤。 – 2013-03-14 16:52:09