我一直在学习 C++ 并遇到了下面的代码。我不明白为什么他们必须在“cin.get(straddress, sizeof(straddress), fdelim).get(c)”中使用 get(c)。没有这个 get(c),代码工作得很好。有人可以启发我使用 get(c) 吗?该程序的目的是读取混合类型的数据。
const char fdelim = '\t';
char straddress[256];
int zip;
char c;
cout << "Enter a record of data: ";
cin.get(straddress, sizeof(straddress), fdelim).get(c) >> zip;
cout << "\nStreet address : " << straddress << endl;
cout << "\nZip/Postal code: " << zip << endl;
最佳答案
线
cin.get(straddress, sizeof(straddress), fdelim).get(c) >> zip;
将fdelim
之前的所有内容读取到straddress
,然后将分隔符读取到c
,然后将邮政编码读取到zip
。
它本来可以写得更好:
cin.get(straddress, sizeof(straddress), fdelim);
cin.get(c);
cin >> zip;
因为 c
没有被使用,它也可以被忽略。
cin.get(straddress, sizeof(straddress), fdelim);
cin.ignore(1); // Read and discard 1 character.
cin >> zip;
关于c++ - C++ 中的 cin.get() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49581082/