将数据写入文件时丢失第一个字符

First character lost when writing data to file

本文关键字:第一个 字符 文件 数据      更新时间:2023-10-16

我遇到了有关文件中数据输入的问题。我正在制作数组,当我按回车键时终止,但问题是 0 索引处的字符不在文件中,而其余索引在那里。换句话说,在写入文件时,我的数组的第一个字符被遗漏了,并且文件中不存在。

我的代码如下:

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");

在第一个 else 子句的开头,你没有对 ch 做任何事情。 您需要像在内部循环中一样将其写入文件。 另外,您需要更改内部循环以使用 j 而不是 i...切勿对嵌套循环使用相同的临时。