如何使用cin以char数组的形式读取字符串?

时间:2016-06-22 15:56:06

标签: c++ string

如何使用cin以cpp中的其他字符串函数读取char数组形式的字符串。 我尝试使用while循环但是如果没有给出大小,结束循环的条件是什么。 就像我使用while('\0')但它没有用。

4 个答案:

答案 0 :(得分:0)

您可以使用cin.getline():

char s[1024];
std::cin.getline(s, 1024, '\n');
std::cout <<  s << std::endl;

答案 1 :(得分:0)

如果你不严格使用char数组,最好使用字符串数据类型。

string s;
char delimiter = '\n';
getline(cin, s, delimiter);

这里将读取整行 如果你可以将分隔符保持为'\0',那么s将包含整个文件直到EOF。

答案 2 :(得分:-1)

如果你有一个字符数组,例如:

 protected override void RegisterModule(IModuleContainer container, IIndexedAppSettings settings)
    {
       [registrations]
    }

您可以使用以下方式处理它:

    char szExample[] = "Hello World";

答案 3 :(得分:-1)

如果没有给出大小,那么你可以根据需要将char数组大小设置为maximun scanf() 用于读取char数组并添加标题 stdio.h 以供 scanf()。< / p>

示例:

mysql> select * from foobar;
+-----------------------------------------------------------+
| json                                                      |
+-----------------------------------------------------------+
| {"firstname":"foo","email":"aaa@aaa.aa","lastname":"bar"} |
| {"firstname":"FOO","email":"aa@aaa.aa","lastname":"BAR"}  |
+-----------------------------------------------------------+

mysql> select * from foobar where json regexp '"email":"aa@aaa.aa"';
+----------------------------------------------------------+
| json                                                     |
+----------------------------------------------------------+
| {"firstname":"FOO","email":"aa@aaa.aa","lastname":"BAR"} |
+----------------------------------------------------------+
1 row in set (0.00 sec)

了解inmputed char的长度使用strlen()

#include<stdio.h>/#include<cstdio>
char array[100000];
scanf("%s",&array);

输入:

ghostrecon

输出:

ghostrecon

10