精华内容
下载资源
问答
  • C/C++如何整行读入字符串

    千次阅读 2017-12-27 15:20:40
    原文地址: ...C/C++如何整行读入字符串? 阅读目录 方法一:scanf()读入char[]方法二:getchar()读入char[]方法三:gets()读入char[]方法四:getline()读入string或char[]方法五:get()读

    原文地址:

    https://www.cnblogs.com/AlvinZH/p/6798023.html


    C/C++如何整行读入字符串?

    在写代码的过程中,经常要一行一行的读入字符串进行处理,这里我总结了一些方法,供大家参考。

    方法一:scanf()读入char[]

    使用方法:

    char str[1024];
    scanf("%[^\n]",&str);
    getchar();

    说明:在scanf函数中,可以使用%c来读取一个字符,使用%s读取一个字符串, 但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字符串。

      其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数,%[ ],这个参数的意义是读入一个字符集合。[ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是"^",这说明读取不在"^"后面集合的字符,既遇到"^"后面集合的字符便停止。注意此时读入的字符串是可以含有空格的,而且会把开头的空格也读进来

      注意:如果要循环的多次从屏幕上读取一行的话,就要在读取一行后,在用%c读取一个字符,将输入缓冲区中的换行符给读出来。否则的话,在下一次读取一行的时候,第一个就遇到'\n',匹配不成功就直接返回了。这里可以用scanf()或者getchar()函数读取换行符。

    方法二:getchar()读入char[]

    使用方法:

    char str[1024];
    int i=0;
    while((str[i]=getchar())!='\n')
        i++;
    getchar();

    说明:这样一个一个读也可以,也会把开头的空格读进来。最后也需要考虑换行符,使用getchar()读出来。

    方法三:gets()读入char[]

    使用方法:

    char str[1024];
    gets(str);

    说明:感觉这个就是多个getchar的集合函数,很好用。功能是从标准输入键盘上读入一个完整的行(从标准输入读,一直读到遇到换行符),把读到的内容存入括号中指定的字符数组里,并用空字符'\0'取代行尾的换行符'\n'。读入时不需要考虑换行符。

    方法四:getline()读入string或char[]

    使用方法:

    string str;
    getline(cin,str);//读入string
    
    char str2[1024];
    cin.getline(str2,1024);//读入char数组

    说明:这是比较常用的方法,cin.getline第三个参数表示间隔符,默认为换行符'\n'。读入不需要考虑最后的换行符。

    方法五:get()读入char[]

    使用方法:

    char str3[1024];
    cin.get(str3,1024);//读入char数组

    说明:get函数读入时需要考虑最后的换行符,也就是说,如果用get读入多行数据,要把'\n'另外读出来,一般使用cin.get(str,1024).get();来读入多组数据。

     

    作者: AlvinZH

    出处: http://www.cnblogs.com/AlvinZH/

    本人Github:https://github.com/Pacsiy/JobDu

    本文版权归作者AlvinZH和博客园所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.


    展开全文
  • 在写代码的过程中,经常要一行一行的读入字符串进行处理,这里我总结了一些方法,供大家参考。 方法一:scanf()读入char[] 使用方法: charstr[1024]; scanf("%[^\n]",&str); getchar(); 说明:在scanf...

    在写代码的过程中,经常要一行一行的读入字符串进行处理,这里我总结了一些方法,供大家参考。

    方法一:scanf()读入char[]

    使用方法:

    charstr[1024];

    scanf("%[^\n]",&str);

    getchar();

    说明:在scanf函数中,可以使用%c来读取一个字符,使用%s读取一个字符串, 但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字符串。

    其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数,%[ ],这个参数的意义是读入一个字符集合。[ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是"^",这说明读取不在"^"后面集合的字符,既遇到"^"后面集合的字符便停止。注意此时读入的字符串是可以含有空格的,而且会把开头的空格也读进来。

    注意:如果要循环的多次从屏幕上读取一行的话,就要在读取一行后,在用%c读取一个字符,将输入缓冲区中的换行符给读出来。否则的话,在下一次读取一行的时候,第一个就遇到'\n',匹配不成功就直接返回了。这里可以用scanf()或者getchar()函数读取换行符。

    方法二:getchar()读入char[]

    使用方法:

    charstr[1024];inti=0;while((str[i]=getchar())!='\n')

        i++;

    getchar();

    说明:这样一个一个读也可以,也会把开头的空格读进来。最后也需要考虑换行符,使用getchar()读出来。

    方法三:gets()读入char[]

    使用方法:

    charstr[1024];

    gets(str);

    说明:感觉这个就是多个getchar的集合函数,很好用。功能是从标准输入键盘上读入一个完整的行(从标准输入读,一直读到遇到换行符),把读到的内容存入括号中指定的字符数组里,并用空字符'\0'取代行尾的换行符'\n'。读入时不需要考虑换行符。

    方法四:getline()读入string或char[]

    使用方法:

    string str;

    getline(cin,str);//读入stringcharstr2[1024];

    cin.getline(str2,1024);//读入char数组

    说明:这是比较常用的方法,cin.getline第三个参数表示间隔符,默认为换行符'\n'。读入不需要考虑最后的换行符。

    方法五:get()读入char[]

    使用方法:

    charstr3[1024];

    cin.get(str3,1024);//读入char数组

    说明:get函数读入时需要考虑最后的换行符,也就是说,如果用get读入多行数据,要把'\n'另外读出来,一般使用cin.get(str,1024).get();来读入多组数据。

    如果你也想成为一名程序员那就关注我,不管是零基础还是入门小白学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习C/C++或者感兴趣、为了入行、转行学习C/C++的伙伴可以一起学习哦!学习企鹅裙、柒贰零壹陆捌伍柒叁,来和志同道合的小伙伴一起加油学习、一起成长进步吧!

    展开全文
  • 如何使用getline读入字符串(char)

    千次阅读 2018-06-05 22:43:52
    也许是最近模拟题打多了的缘故,我发现自己渐渐变得比较毒瘤起来,当然这也是有一定的好处的,因为从中我也学到了一些处理字符串的正确姿势,今天我们就来讲一 讲如何用函数getline来读入一整行字符串进行处理。...

    也许是最近模拟题打多了的缘故,我发现自己渐渐变得比较毒瘤起来,当然这也是有一定的好处的,因为从中我也学到了一些处理字符串的正确姿势,今天我们就来讲一 讲如何用函数getline来读入一整行字符串进行处理。或者他的一些变体。

    首先我们先需要知道为什么我们要学习这个函数,是这样的,相信大家都应该知道以前有一个函数叫做gets,这个函数非常的好用,你可以非常快捷的使用他来进行一整行字符串的输入,但是这个函数不知道为什么在正式的比赛中,很容易使用它而导致挂掉,而又因为最基本的读入getchar本人在写的时候,也经常会出现一些意想不到的错误,所以我们急需一个可以既安全的能够读入字符串的函数,又并不是非常的难书写,这里就要引入getline了。

    因为string类型非常的慢,所以考试的时候我们基本上不用,这个类型,所以说我们只需要掌握一下,getline关于字符串(char)类型的输入就可以了。然后这个其实也还是非常的简单的。

    getline这个函数是属于iostream库的,然后我们只需要在代码中写这一句话即可

    cin.getline(字符串名,字符串大小,*条件)

    然后这个关于条件这个东西,一般不填,如果不填,默认读到回车时结束,如果填了,那么 就会读到你想要指定的那个字符前停止读入。

    标准代码如下:

    #include<iostream>
    using namespace std;
    char ch[1024];
    int main()
    {
        cin.getline(ch,1024,'E');
            cout<<ch;
        cout<<"A";
    }   

    运行结果:

    相信大家应该都懂了如何使用getline了!

    谢谢采纳!

    展开全文
  • C/C++整行读入字符串

    2020-07-15 22:52:23
    C/C++如何整行读入字符串? 在写代码的过程中,经常要一行一行的读入字符串进行处理,这里别人总结了一些方法,供大家参考。 方法一:scanf() 读入 char[] 使用方法: char str[1024]; scanf("%[^\n]", &str); ...

    C/C++如何整行读入字符串?

    在写代码的过程中,经常要一行一行的读入字符串进行处理,这里别人总结了一些方法,供大家参考。

    方法一:scanf() 读入 char[]

        使用方法:

    char str[1024];
    scanf("%[^\n]", &str);
    getchar();
    

        说明:在scanf函数中,可以使用%c来读取一个字符,使用%s读取一个字符串, 但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字符串。

        其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数,%[ ],这个参数的意义是读入一个字符集合。[ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是"^",这说明读取不在"^"后面集合的字符,既遇到"^"后面集合的字符便停止。注意此时读入的字符串是可以含有空格的,而且会把开头的空格也读进来。

        注意:如果要循环的多次从屏幕上读取一行的话,就要在读取一行后,在用%c读取一个字符,将输入缓冲区中的换行符给读出来。否则的话,在下一次读取一行的时候,第一个就遇到'\n',匹配不成功就直接返回了。这里可以scanf()或者getchar()函数读取换行符。


    方法二:getchar()读入char[]

        使用方法:

    char str[1024];
    int i = 0;
    while((str[i]=getchar())!='\n') i++;
    getchar();
    

        说明:这样一个一个读也可以,也会把开头的空格读进来。最后也需要考虑换行符,使用getchar()读出来。


    方法三:gets()读入char[]

        使用方法:

    char str[1024];
    gets(str);
    

        说明:感觉这个就是多个getchar的集合函数,很好用。功能是从标准输入键盘上读入一个完整的行(从标准输入读,一直读到遇到换行符),把读到的内容存入括号中指定的字符数组里,并用空字符'\0'取代行尾的换行符'\n'读入时不需要考虑换行符。


    方法四:getline()读入string或char[]

        使用方法:

    string str;
    getline(cin, str);	//读入string
    
    char str2[1024];
    cin.getline(str2, 1024);	//读入char数组
    

        说明:这是比较常用的方法,cin.getline第三个参数表示间隔符,默认为换行符'\n'读入不需要考虑最后的换行符。


    方法五:get()读入char[]

        使用方法:

    char str3[1024];
    cin.get(str3,1024);//读入char数组
    

        说明:get函数读入时需要考虑最后的换行符,也就是说,如果用get读入多行数据,要把'\n'另外读出来,一般使用cin.get(str,1024).get();来读入多组数据。

    展开全文
  • Read content of a file to string (in this example, we echo it):将文件的内容读取为字符串 (在此示例中,我们将其回显): // Get text from file function get_text($text_filename) { if ($text_filename !=...
  • 我需要从文件系统中读取文件并将整个内容加载到groovy控制器中的字符串中,最简单的方法是什么?
  • void coding(HuffmanCode HC,char *str){//对所代表的字符串进行编码,并写入文件 int i,j; FILE *fp; fp=fopen("codefile.txt","w"); while(*str){ for(i = 1;i ;i++){ if(HC[i].ch == *str){ for(j =...
  • <p>I have lots of small files, I don't want to read them line by line. <p>Is there a function in Go that will read a whole file into a string variable? 转载于:...
  • 在C++中如何高效灵活的读入字符串一直是一个困扰许多初学者的问题,现在我就来尝试整理一些C++中读入字符串的方法。 为了方便速查,我将几种常见的情况做归类: 不能读取空格,也不能读取回车 1.一般的cin读入方法:...
  • #1楼 参考:https://stackoom.com/question/Z7DP/如何将文本文件读入字符串变量并删除换行符 #2楼 use read(), not readline() 使用read(),而不是readline() with open('data.txt', 'r') as myfile: data = ...
  • <p>I'm trying to open an .html file as one big long string. This is what I've got:</p> <pre><code>open(FILE, 'index.html') or die "Can't read file 'filename' [$!]\n"; $document = <...
  • 从控制台读入字符串的方法

    千次阅读 2012-10-11 09:39:06
    0 引言  从控制台中读取数据是一个比较常用的功能,在JDK 5.0以前的版本中的实现是比较复杂的,需要手工处理...下面来看一下,各个版本中如何从控制台中读取数据以及各自的优缺点。  1 JDK 1.4及以下版本读取的方法
  • 而cin是使用空白(空格,制表符和换行符)来定字符串的界的。 这就导致了对于带有空格的字符串,比如”I Love C++奋斗乐园论坛” 只能读入”I”,后面的都无法读入。 这时怎么办?  一.对于字符数组: 方法一:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 473
精华内容 189
关键字:

如何读入字符串