c++ - 将输入读入 C 风格的字符串

标签 c++ c string

我正在为我的编程类(class)开展一个项目,该项目要求我使用字符串。该程序首先要求用户输入一个短语。通常我会声明如下内容:

    string phrase;

然后我会使用:

    getline(cin,phrase);

但是,教授告诉类(class),我们不允许使用字符串类,我们必须只使用基于c 的字符串。我可能是错的,但我相信基于 C 的字符串看起来像这样:

    char phrase[12] = "hello world";

如果这就是我的教授所说的基于 C 的字符串的意思,那么我不知道如何向其中输入短语。当我尝试这样做时,程序只存储短语的第一个单词并在它看到的第一个空格处停止。例如:

    char phrase[12];

    cin >> phrase;

//input: hello world

    cout << phrase;

//output: hello

任何建议都会有所帮助,我们将不胜感激,谢谢。

最佳答案

您需要使用 cin.getline(var_id, var_length) 而不是 cin >> var_id,当它遇到 空格新行

如果您想了解更多关于 cin.getline 以及它的使用可能导致的问题,您可以查看这篇文章:Program skips cin.getline()

关于c++ - 将输入读入 C 风格的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25856385/

相关文章:

javascript - 如何让我的正则表达式翻译我给它的字符串而不是它自己的输出?

c++ - 使用 OpenMP 的并行执行比串行执行 C++ 花费的时间更长,我是否以正确的方式计算执行时间?

c++ - SFINAE 上的默认参数值

c++ - 迭代结构;在 RichEdit 框中轻松显示结构字段和值

c++ - 如何通过引用传递指针来更改指针指向的位置?

c++ - 涉及非常快速地跨网络发送数据的 C/C++ 技术

c - 当我运行程序时,如何检查内存中为我的 C 程序分配了多少内存

ruby - ruby 混淆中的正则表达式匹配

c - 增加标准输出缓冲区大小

string - 如何从字符串中的给定日期找到工作日?