- 已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
2天前关闭。
Improve this question
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <iostream>
using namespace std;
struct customer
{
char fname[11];
};
void name(customer& name)
{
bool check = false;
do {
cout << "Enter your first name : ";
cin.getline(name.fname, 10);// goal is to exit once press enter
if (name.fname == '\n') //This doesnt work. i also tried using cin.get, cin.ignore, cin.peek and it still doesnt work, i tried changing the '\n' to '\0' and 0 just to see.
{
cout << "Invalid Entry\n";
}
else
check = true;
} while (check != true);
}
int main()
{
customer cr;
name(cr);
return 0;
}
我创建这段代码只是为了最终弄清楚如何使用cin.getline()
,这是一段简单的代码,它需要一个名称。
目标是输入名称并在按Enter键时退出代码。
3条答案
按热度按时间wj8zmpe11#
你不是说
你是说
wecizke32#
您正在尝试将
char[]
数组与单个char
进行比较,但此操作无效。请改用类似strcmp()
的字符串比较。但是,cin.getline()
不会将终止的'\n'
存储到fname
中作为开始。试试类似这样的方法:
也就是说,您确实应该使用
std::string
而不是char[]
,例如:pgx2nnw83#
试试这个代码