【问题标题】:C++ double char array deliminator [closed]C ++双字符数组分隔符[关闭]
【发布时间】:2014-04-16 18:11:25
【问题描述】:

我正在尝试使用以下代码将几个名字输入到双字符数组中:

int main(void) 

char firstName[4][10];
Int num = 2;

for (int i=0; i<num; i++) 
  for (int j=0; j<10; j++) 
        cin >> firstName[i] [j] ;
        if(firstName[i] [j] == '.') 
            break;

Return(0);

基本上,我正在寻找一种简单、更好的方法来将名称输入到双字符数组中,而不必以句点结束输入。如果我尝试使用 char 分隔符。 '/0' 在继续之前,它仍会尝试填充字符数组的第一行。

【问题讨论】:

  • 我真的很想念那些花括号。他们在哪?你试过编译你的代码吗?
  • 说到花括号,如果发布的代码编译,你的编译器已经过时了。
  • 我还缺少用小写字母拼写的关键字。对程序员来说,草率不是美德。
  • @DavidK:是的,这是真的,但我更担心没有大括号,这是什么ReturnInt?
  • 这是蟒蛇吗?你为什么要发布关于你的代码无法工作的 C++ 问题的伪代码?

标签: c++ c character


【解决方案1】:

在编码方面,因为这是 C++,所以不要将字符串列表存储在 char 的二维数组中。请改用std::vector&lt;std::string&gt;。并且不要一次读取一个字符;读取更大的字符块。

如果您可以保证名字中永远不会嵌入空格,则可以编写类似cin &gt;&gt; s; 的内容,其中s 的类型为std::string,以便在一次操作中读取整个名字。

如果名称中可能包含空格,请尝试将文件的整行读入std::string 并从那里提取您需要的数据。如果这太复杂,也许您需要重新考虑输入文件的格式。 (下次可能包括输入文件的示例,以便我们可以看到您认为您正在尝试阅读的内容。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多