2.putchar() getchar() 输出输入函数只针对单个字符的操作。3.puts(),gets() 输出输入函数可以单个字符操作(但是功能有限的),主要是针对字符串操作。 下面我们定义int a用scanf("%d",a)可以获取整型a的值,a=getchar(),gets(a)无法从键盘获取数字用printf("%d",a)可以打印数字a的值,putchar(a),puts(a)没法打印数字方面:printf()和scanf()胜char a用scanf("%c",a) 可以获取字符a的值,用a=getchar()能获取a的值,用gets(a)不能获取用printf("%c",a)可以打印字符a的值 用a=getchar()可以打印a的值,用puts(a)不能打印字符方面:getchar()和putchar()第1 scanf()和printf()第2 gets和puts()败补充:puts()和gets()能接收和打印单个字符只限制变量是数组变量例如 char a[50]; gets(a); put(a);你输入一个字符就会打印一个字符但如果是字符变量 char a='x'; char a; puts(a); 或 gets(a); puts(a);就无法运行char a[50]用scanf("%s",a)能获取数组a的值,用a=getchar()无法获取,用gets(a)能获取a的值用printf("%s",a)能打印数组a的值 用putchar(a)无法打印,用puts(a)能打印a的值字符串(数组)方面:gets()和puts()第一,scanf()和printf()第2,getchar()和putchar()败可见scanf()和printf()什么都能实现,但对字符和字符串操作没有其他两种好getchar()和putchar()对字符操作优势明显,但不能操作数字变量,字符数组变量gets()和puts()对字符串操作优势明显,但也不能操作数字变量,字符变量scanf()和printf()格式输入输出能同时按格式一起输入输出字符,数字,字符串这是其他两种不能比的所以程序以scanf()和printf()为主,其他两种作为辅助,发挥各自的长处。最后来个总结,用程序表示#include stdio.hmain(){ char a,b[50]; printf("请输入第一个字符:\n"); scanf(" %c",a); getchar(); //获取前面的回车 printf("第一个的字符为:%c\n",a); printf("请输入第二个字符:\n"); a=getchar(); printf("第二个字符为:"); putchar(a); putchar('\n'); printf("请输入第一个字符串:\n"); scanf(" %s",b); getchar(); //获取前面的回车 printf("第一个的字符为:%s\n",b); puts("请输入第二个字符串:"); gets(b); puts("第二个字符串为:"); puts(b); }
我们提供的服务有:成都网站建设、网站设计、微信公众号开发、网站优化、网站认证、临湘ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的临湘网站制作公司
#includestdio.h
void main() { char list[100000];
scanf("%s",list); //以空格换行结束输入
}
void main() { char list[100000];
gets(list); //以换行结束输入,可以输入空格
}
void main() { char list[100000]; int n=0;
while ( 1 ) {
list[n]=getchar();
if ( list[n]=='\n' ) break; else n++; //判断输入换行结束,也可以改成其他字符结束
}
}
可以考虑用链表实现,也可以用C++的new分配内存.
NEW
从堆中划分一块区域,动态创建一个类型的数据,最后返回该区域的指针.该数据类型可以是标准数据类型,也可以是用户自定义类型.数据使用完后,应调用free()来释放动态申请的内存(在堆中).
New 关键字引入 New 子句,该子句创建一个新的对象实例。New 子句必须指定一个可以用来创建实例的已定义类。可以在声明语句或赋值语句中使用 New。执行该语句时,它将调用指定类的构造函数,传递您提供的所有参数:
Dim Obj As Object
Obj = New SomeClass("String required by constructor")
' ...
Dim MyLabel As New Label()
由于数组是类,因此 New 可以创建新的数组实例:
Dim MyArray As Integer()
MyArray = New Integer() {0, 1, 2, 3}
如果内存不足,无法创建新的实例,公共语言运行库将引发 OutOfMemoryException 错误。
main函数作如下修改,就能正常运行。输入数据的时候,以-1作为结束标志。
int main(void){
struct point *a,*p;
struct point *head=NULL;
int b[100],j,i=0,x; /*修改过的地方,新定义了变量x*/
scanf("%d",x); /*修改过的地方*/
while(x!=-1){
b[i]=x;
scanf("%d",x); /*修改过的地方*/
i++;}
a=(struct point *)malloc(sizeof(struct point));/*修改过的地方*/
for(j=0;ji/2;j++){
a-x=b[(2*j)];
a-y=b[(2*j)+1];
a-next=NULL;
if(head==NULL)
head=a;
else{
p-next=a;
p=a;}
print(head);
}
}