注册 登录
编程论坛 C++教室

C++,C里如何读取一行任意长度且有空格的字符串

令狐少侠56 发布于 2016-10-17 23:49, 3389 次点击
我在网上找的要么不能任意长度要么不能有空格,要任意长度也要空格怎么办?
5 回复
#2
rjsp2016-10-18 08:40
std::getline( 流,std::string对象的引用 );

程序代码:
#include <iostream>
#include <fstream>
#include <string>

int main( void )
{
    std::ifstream is( "a.txt" );
    for( std::string line; std::getline(is,line); )
        std::cout << line << '\n';

    return 0;
}

#3
lin_jun_cai2016-10-18 09:18
你可以试试用sprintf()/sscanf()函数,前提是你要知道字符串的长度
#4
Panda20162016-10-18 22:16
basic_istream::getline(szBuf,iSize);

eg:
 char szBuf[1024];
 int iSize = 1024;
 std::cin.getline(szBuf,iSize):
#5
林家的姑娘2016-10-18 23:04
回复 楼主 令狐少侠56
你试试用gest读取你的字符串
#6
StadyC2016-10-31 12:03
文件中读取整行(包括'\n'):
FILE *fp = fopen("test.txt", "r");
char buf[256];
memset(buf, '\0', sizeof(buf));
fgets(buf, 256, fp);

终端输入:
char buf[256];
memset(buf, '\0', sizeof(buf));
fgets(buf, 256, stdin);    //也可以直接gets(buf),不过该函数不安全,在C11标准已经直接被删除了


[此贴子已经被作者于2016-10-31 12:06编辑过]

1