C++ 将数据写入文件时丢失的第一个字符
我面临一个关于文件中数据输入的问题。我正在创建数组,当我按enter键时数组终止,但问题是0索引处的字符不在文件中,而其余的索引在文件中。换句话说,在写入文件时,数组的第一个字符丢失了,并且不在文件中 我的代码如下:C++ 将数据写入文件时丢失的第一个字符,c++,C++,我面临一个关于文件中数据输入的问题。我正在创建数组,当我按enter键时数组终止,但问题是0索引处的字符不在文件中,而其余的索引在文件中。换句话说,在写入文件时,数组的第一个字符丢失了,并且不在文件中 我的代码如下: char CNIC[10000]; std::fstream file1; cout<<"Enter CNIC's >>>>>>>>>>> "<<endl; file1.open("Nadr
char CNIC[10000];
std::fstream file1;
cout<<"Enter CNIC's >>>>>>>>>>> "<<endl;
file1.open("Nadra database.txt",std::fstream::in | std::fstream::out | std::fstream::app);
if(!file1)
{
cout<<"File was not open";
}
else
{
for(int i=0;i<11;i++)
{
char ch = getche();
if((int)ch==13)
{
cout<<"Press Enter key to close data entry "<<endl;
break;
}
else
{
for(int i=0;i<11;i++)
{
char character = getche();
if((int)character==13)
{
break;
}
else
{
CNIC[i]=character;
file1<<CNIC[i];
}
}
file1<<endl;
}
}
}
system("pause");
char-CNIC[10000];
std::fstream文件1;
cout在第一个else子句的开头,您没有对ch做任何事情。您需要像在内部循环中一样将其写入文件。此外,您需要更改您的内部循环,以使用j而不是i。。。切勿对嵌套循环使用相同的临时值。与其将字符与数字进行比较,不如将它们与字符文字进行比较。例如,if(character=='\r')
。我不知道为什么会存在外部循环。你能更清楚地解释一下这个代码应该做什么吗?你为什么用getche
而不是cin
?