跑江湖 发表于 2013-12-12 23:02:40

新手求助。

本帖最后由 跑江湖 于 2013-12-13 14:58 编辑

#include<iostream>
#include<fstream>
#include<cstdlib>
#include<string>
#include<windows.h>

using namespace std;

struct Fishc
{
      string name;
      char sex;
      string Id;
};

int main(void)
{
      ofstream outFile;
      ifstream inFile;
      int i;
      int n = 0;
      int count = 0;
      
      cout << "1. 打印输入到屏幕\n";
      cout << "2. 录入数据\n";
      cout << "3. 退出程序\n";
      
      cout << "请选择:";
      cin >> i;
      cin.get();
      
      switch (i)
      {
      case 1:
                count = 1;
                break;
      case 2:
                count = 2;
                break;
      case 3:
                count = 3;
                break;
      }
      
      if (count == 1)
      {
                inFile.open("test.txt",ios_base::binary);

                if (!inFile.is_open())
                {
                        cout<<"文件无法打开.\n";
                        
                        exit(EXIT_FAILURE);
                }
               
                while (1)
                {
                        if (inFile.eof())
                        {
                              break;
                        }
                        
                        else
                        {
                              Fishc p;
                              inFile >> p.Id;
                              inFile >> p.name;
                              inFile >> p.sex;
                              

                              cout << p.Id << endl;
                              cout << p.name << endl;
                              cout << p.sex<<'\n';         
                              
                        }
                }

                inFile.close();
      }

      else if(count == 2)
      {
                Fishc p;
                cout << "请输入姓名:";

                getline(cin,p.name);
                cin.get();                            // 处理回车
                cout<<"请输入性别【M(男)/F(女)】:";
                cin >> p.sex;
                cin.get();                           // 处理回车
                cout<<"请输入编号 :";
                getline(cin,p.Id);

                outFile.open("test.txt",ios_base::in|ios_base::app|ios_base::binary);


                if (!outFile.is_open())
                {
                        cout<<"打开失败\n";

                        exit(EXIT_FAILURE);
                }

                outFile << endl<<'\n';
                outFile << p.Id << endl;
                outFile << p.name << endl;
                outFile << p.sex << endl;
               

                outFile.close();
      }

      else
      {
                cout<<"输入任意字符退出程序: ";
                cin.get();
      }
      

      return 0;



为什么后面多输出了一个F?


maomingkun 发表于 2013-12-12 23:54:01

知道endl和'\n'的意思么?都是换行吧

跑江湖 发表于 2013-12-13 12:21:14

maomingkun 发表于 2013-12-12 23:54 static/image/common/back.gif
知道endl和'\n'的意思么?都是换行吧

知道啊!为什么加了这两个之后,后面多输出了一个F

跑江湖 发表于 2013-12-13 14:42:34

跑江湖 发表于 2013-12-13 12:21 static/image/common/back.gif
知道啊!为什么加了这两个之后,后面多输出了一个F

不好意思,问题搞错了,为什么后面多输出了一个字符,没加回车的那张挤一块了没看到。
test.txt的内容是这样的。
ID_000001
跑江湖
F
页: [1]
查看完整版本: 新手求助。