C++; 我一直在学习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; const char fdelim='\t'; 字符集[256]; int-zip; 字符c; cout>zip; 不能
C++; 我一直在学习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; const char fdelim='\t'; 字符集[256]; int-zip; 字符c; cout>zip; 不能,c++,c++11,C++,C++11,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, s
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;
线路
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;
假设用户在键入
\t
字符之前键入的字符少于255个,则当到达\t
字符时,对的第一次调用将停止读取,但不会从cin
中提取该字符。下一次调用cin.get()
将提取\t
我会选择使用,它读取分隔符,但不将其存储在调用方的缓冲区中:
const char fdelim = '\t';
char straddress[256];
int zip;
cout << "Enter a record of data: ";
cin.getline(straddress, sizeof(straddress), fdelim);
cin >> zip;
cout << "\nStreet address : " << straddress << endl;
cout << "\nZip/Postal code: " << zip << endl;
假设用户在键入
\t
字符之前键入的字符少于255个,则当到达\t
字符时,对的第一次调用将停止读取,但不会从cin
中提取该字符。下一次调用cin.get()
将提取\t
我会选择使用,它读取分隔符,但不将其存储在调用方的缓冲区中:
const char fdelim = '\t';
char straddress[256];
int zip;
cout << "Enter a record of data: ";
cin.getline(straddress, sizeof(straddress), fdelim);
cin >> zip;
cout << "\nStreet address : " << straddress << endl;
cout << "\nZip/Postal code: " << zip << endl;
它只是从输入流中获取下一个字符,并将其放入
c
。看起来它只是试图跳过地址的制表符分隔符。但这不是必需的,因为>zip
将跳过空白。这只是从输入流中获取下一个字符并将其放入c
。看起来它只是试图跳过地址的制表符分隔符。但这不是必需的,因为>zip
将跳过空白。我想他们是在fdelim
更改为非空白字符的情况下编写的。我想他们是在fdelim
更改为非空白字符的情况下编写的。谢谢您的输入。我刚才看到你的照片了。这给了我更深入的见解。我非常感谢。谢谢你的投入。我刚才看到你的照片了。这给了我更深入的见解。我非常感激。