草庐IT

c++ - 通过 Cin 获取十六进制

为什么这段代码不起作用?intx;cin>>x;输入0x1a我得到的是x==0而不是26。为什么? 最佳答案 我相信要使用十六进制,您需要执行以下操作:cin>>hex>>x;cout你也可以用dec和oct等替换hex。 关于c++-通过Cin获取十六进制,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/13196589/

c++ - 在 C++ 中,当 cin 是 bash heredoc 时调用 fork 会导致重复输入片段

我正在用C++实现一个类似shell的程序。它有一个循环,从cin中读取、fork并等待子节点。如果输入是交互式的或者是从另一个程序通过管道传输的,这可以正常工作。但是,当输入是bashheredoc,程序会重新读取部分输入(有时是无限期的)。我了解子进程继承父进程的文件描述符,包括共享文件偏移量。但是,这个例子中的child没有从cin中读取任何内容,所以我认为它不应该触及偏移量。我有点不明白为什么会这样。test.cpp:#include#include#includeintmain(intargc,char**argv){std::stringline;while(std::ge

c++ - 我怎样才能 cin 和 cout 一些 unicode 文本?

我问一个代码片段,它输入一个unicode文本,将另一个unicode连接到第一个unicode文本,然后输出结果。附:这段代码将帮助我解决另一个更大的unicode问题。但在关键是完成我的要求之前。添加:顺便说一句,当我运行可执行文件时,我无法在命令行中写入任何unicode符号。我应该怎么做? 最佳答案 我过去也遇到过类似的问题,就我而言,imbue和sync_with_stdio解决了问题。试试这个:#include#include#includeusingnamespacestd;intmain(){ios_base::sy

c++ - 将字符串注入(inject) 'cin'

我有一个从std::cin读取用户输入的函数,我想编写一个单元测试,将一些字符串插入到std::cin中,以便以后从std::cin中提取将读取该字符串而不是暂停用于键盘输入。理想情况下,我会更改函数签名,以便可以将自定义istream作为参数传递,但我不能在这里这样做,因为我有一个无法更改的固定接口(interface)。cin.putback()是我想要的几乎,但是它一次只插入一个字符,并且以相反的顺序插入它们(但我在某处读到放回字符最初并不存在可能是危险的,尽管该网站没有详细说明原因)。我尝试了几种方法将字符串注入(inject)cin的内部缓冲区cin.rdbuf(),但也没有

让 cin 读取返回字符的 C++

我想知道如何使用cin以便如果用户没有输入任何值而只是按ENTER那cin将识别这是有效的输入。 最佳答案 你可能想试试std::getline:#include#includestd::stringline;std::getline(std::cin,line);if(line.empty())... 关于让cin读取返回字符的C++,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

c++ - 检查 cin 输入流产生一个整数

我正在输入这个,它要求用户输入两个整数,然后它们将成为变量。从那里它将执行简单的操作。如何让计算机检查输入的内容是否为整数?如果没有,请用户输入一个整数。例如:如果有人输入“a”而不是2,那么它会告诉他们重新输入一个数字。谢谢#includeusingnamespacestd;intmain(){intfirstvariable;intsecondvariable;floatfloat1;floatfloat2;cout>firstvariable;cin>>secondvariable;cout 最佳答案 你可以这样检查:intx

c++ - 如何在循环中表示不再输入字符串 ss while (cin >> ss)

我使用“cin”从输入流中读取单词,比如intmain(){stringword;while(cin>>word){//dosthontheinputword}//performsomeotheroperations}代码结构与上述类似。它是可编译的。在执行过程中,我不断输入类似aabbccdd我的问题是如何结束这个输入?换句话说,假设文本文件只是“aabbccdd”。但是不知道怎么让程序知道文件结束了。 最佳答案 您的代码是正确的。如果您是交互式输入,则需要发送EOF字符,例如CTRL-D。读取文件时不需要此EOF字符。这是因为一

c++ - cout/cin 到底是什么?

我知道Java,现在想学习C++。我不明白什么是cout(字符输出流)和cin(字符输入)。这些是全局变量吗?那为什么"Mymessage">>cout;不工作?但是cout有效。 最佳答案 cout是类std::ostream的一个实例,是的,它是一个全局变量。但是operator>>(char*,ostream&os);没有被相关头声明,所以"Mymessage">>cout;会给出类似“找不到带有参数constchar*和std::ostream的运算符>>”之类的错误(并且可能会出现更多错误,因为有时编译器会被这类事情弄糊涂

c++ - 与 C++ cin 语句等效的 C 是什么?

C++cin语句的C等价物是什么?我也可以看看上面的语法吗? 最佳答案 cin不是一个语句,它是一个引用标准输入流的变量。所以C中最接近的匹配实际上是stdin。如果你有这样的C++语句:std::stringstrvar;std::cin>>strvar;在C中类似的事情是使用各种各样的输入函数:charstrvar[100];fgets(strvar,100,stdin);见anearlieranswer我今天提出了一个问题,关于一种安全地进行行输入和解析的方法。它基本上是用fgets输入一行(利用其缓冲区溢出保护),然后使用s

c++ - 为什么在 C++ 中使用 cin、cout 或 %I64d 优于 %lld 说明符?

为什么很多在线评委建议“不要使用%lld说明符在С++中读写64位整数”?首选使用cin、cout流还是%I64d说明符? 最佳答案 我相信答案与%lld表示longlongdecimal有关,不能保证是64位。例如,在某些系统上可能是128位。(虽然如果变量是longlong而不是,比如说,uint64_t,那么我希望%lld是正确的使用-或者它反过来会出错)不幸的是,printf和scanf及其兄弟的设计使得编译器实现和格式必须匹配。显然,cout和cin是安全的,因为编译器会自行选择正确的输出和输入翻译。这也可能与“在线评委”