我编写了以下代码来返回 txt 文件中矩阵的大小。例如,如果我在 txt 文件中找到以下内容(这也是我的代码的测试实例),它将返回矩阵 A 的大小,即 3 3
A
1 2 3
4 5 6
7 8 9
B
1 2 3
1 2 3
1 2 3
这是我的代码:
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
//This function will return the number of integers in a string
int intnum(string s){
int i=0;
string::iterator it;
for(it=++s.begin();it!=s.end();it++){
if( (*(it-1)>='0'||*(it-1)<='9') && (*it==' ') ){
++i;
}
else{
continue;
}
}
if(s.back()==' '){
return i;
}
else{
return i+1;
}
}
//This function will take the name of the matrix and return its size
int *findmatrixsize(const string filename,const string matrixname){
int Asize[2];
ifstream fin;
fin.open(filename);
string s;
while(getline(fin,s)){
if(s== matrixname){
cout<<s<< endl;//Locate the position of the matrix
break;
}
}
Asize[0]=0;
while(getline(fin,s)){
Asize[1] = intnum(s);
if(s.length()==0){
break;
}
Asize[0]++;
}
fin.close();
return Asize;
}
int main() {
int *p = findmatrixsize("inputmatrix.txt","A");
cout <<p[0]<<endl << p[1]<< endl;
return 0;
}
在 int main 中,如果我使用“A”它总是崩溃,但如果我使用“B”甚至“C”(当我在 txt 文件中创建很多矩阵时),它们工作正常。顺便说一句,我使用视觉工作室。
所以,基本上,我的代码总是崩溃以找到 txt 文件中第一个矩阵的维度。
任何很棒的人可以告诉我为什么并帮助我解决它吗?
谢谢你的协助!!!