c++中gets()怎么用?
#include<cstring>
using namespace std;
class largenum{
int * lnum;
int length;
public:
largenum();
};
largenum::largenum(){
char* str;
cout<<"请输入一个大数:";
gets(str);
length=strlen(str);
cout<<length<<endl;
if(length>40){
cout<<"error"<<endl;
}
lnum=new int[length];
for(int i=0;i<length;i++){
lnum[i]=str[i]-'0';
}
}
#include"largenum.h"
void main(){
largenum t;
}
为什么不对? 展开
c++使用中gets()函数,前提是引入cstdio头文件(#include <cstdio>),才能进行调用。
头文件引入:#include <cstdio>
调用格式:“gets(s); ”,其中s为字符串变量(字符串数组名或字符串指针)。
函数作用:gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\0'字符。
说明:gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。
扩展资料:
近似的函数 scanf():
是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。
函数原型:int scanf(const char * restrict format,...);
函数 scanf() 是从标准输入流stdin (标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
参考资料来源:百度百科-gets
c++中gets() 函数可以从缓冲区中读取字符串并存储到字符指针变量 str 所指向的内存空间。使用方法为:
1、gets() 函数其原型是: char *gets(char *string);请输入字符串:hello world hello world。
2、相比于scanf, gets() 函数会更简单简洁,并且gets()还可以输入带空格的字符串,而 scanf 一定要定义多个字符数组。
3、另外, gets()还可以用于初始化字符指针变量所指向的内存单元。
4、缓冲区中不会遗留换行符。使用 gets()函数时,系统会自动将最后打出来的换行符从缓冲区中取出来丢弃。
5、因此如果前面使用的是其他函数而不是gets(),那么就必须先使用 getchar() 清空缓冲区然后再通过键盘给 ch 赋值。
推荐于2017-10-02 · 知道合伙人教育行家
gets() ;接受一个字符串,可以接收空格并输出,需包含“#include<string>”
例如:
#include<iostream>
#include<string>
using namespace std;
main ()
{
char m[20];
gets(m); //不能写成m=gets();
cout<<m<<endl;
}
//输入:jkljkljkl
//输出:jkljkljkl