У меня есть код:
using namespace std;
int main()
{
char Filename[100];
char st[100][100];
char *argv[100];
std::ifstream infile("data.txt");
std::freopen("output.xls","w",stdout);
if (!infile)
{
cout << " Input file Could not open file." << endl;
return 1;
}
std::string line;
while (std::getline(infile,line))
{
int a;
int length=line.size();
for(a=0;a<=length;a++)
{
Filename[a]=line[a];
}
// one D array to 2D array
int b=0;
int l=0;
strcpy(st[0],"0");// for erase previous value
//cout<<st[0]<<endl;
for(int j=0;j<=a;j++)
{
if (Filename[j]==' ')
{
b++;
l=0;
strcpy(st[b],"0");// for erase previous value
}
else
{
st[b][l]=Filename[j];
l++;
}
} //..........
// 2D array to reffarence array.
for(int k=0;k<=b;k++)
{
argv[k]=&st[k][0];
cout<<argv[k];// or cout<<st[k]; i get same
cout<<"\t";
}
cout<<endl;
//..............
// Do whatever with the array content
}
infile.close();
return 0;
}
файл данных: (один пробел между двумя словами)
testCore 100 100 400 5000 5000 "/ конец строки"
testCo 1 4 4 100 100 "/ конец строки"
tcore 1 3 4 5 20 "/ конец строки"
основной 2 3 4 200 4 "/ конец линии"
мой вывод:
что я хочу: я хочу прочитать файл данных построчно (это важно) и отделить каждое слово после чтения одной строки, а затем прочитать другую строку. Но проблема в выводе в первом слове каждой строки (также в каждом слове первой строки), что дает вывод мусора. и есть проблема во 2-м столбце также. В чем проблема моего кода? У кого-нибудь есть исправление?