注册 登录
编程论坛 C++教室

关于cin的各种问题!

a6523773 发布于 2013-05-19 14:23, 719 次点击
#include <iostream>
#include <fstream>
using namespace std;
const int a=10;
const int b=4;
int main()
{
    char name[a];
    char num[b];
    int n;
    float price;
    ofstream outfile;
     outfile.open("E:\\test.txt", ios::app);
     if(!outfile) //检查文件是否正常打开
     {
          cout<<"can't open"<<endl;
          //abort(); //打开失败,结束程序
     }
     else
     {
         cout<<"输入药品的种类数n:"<<endl;
         cin>>n;
         cout<<"输入药品的名称        编号    单价"<<endl;
         while(n>0)
         {
             cin.getline(name,a).get();//这里总是出各种各样的问题
             cin.get(num,b).get();
             cin>>price;
             outfile<<name<<"\t\t"<<num<<"\t\t"<<price<<"\t\t"<<0<<"\t\t"<<0<<endl;
             n--;
         }
         outfile.close();
     }
     printf("Hello World!\n");
     return 0;
}

             cin.getline(name,a).get();
             cin.get(num,b).get();
每次用cin.get();和cin.getline();这2中方法来输入的时候总是回出现各种各样的问题~我用cin.clear():重置输入,编译器就会跳过后面的输入。我用cin。get().get();的格式后面的可以输入,但是输出打印到文本的时候总是回丢失字符究竟怎么回事?究竟怎么用这2个cin?
5 回复
#2
a65237732013-05-19 14:25
有会的吗?会的就详细说一下用cin.get()和cin.getline还有getline(cin,a)这3种不同的输入方式时所要注意的地方!感激不尽!
#3
peach54602013-05-19 16:27
百度...
#4
邓士林2013-05-19 20:00
cin.get();是用来从指定的输入流提取一个字符,包括空白字符;
cin.gentline(字符数组,字符个数n,种植标志字符);是从输入流中读取一行字符
#5
a65237732013-05-19 23:04
回复 4楼 邓士林
这个我是当然知道~
#6
a65237732013-05-19 23:04
回复 4楼 邓士林
你还是不了解我要的答案~
1