2.putchar() getchar() 輸出輸入函數(shù)只針對單個字符的操作。3.puts(),gets() 輸出輸入函數(shù)可以單個字符操作(但是功能有限的),主要是針對字符串操作。 下面我們定義int a用scanf("%d",a)可以獲取整型a的值,a=getchar(),gets(a)無法從鍵盤獲取數(shù)字用printf("%d",a)可以打印數(shù)字a的值,putchar(a),puts(a)沒法打印數(shù)字方面: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()能接收和打印單個字符只限制變量是數(shù)組變量例如 char a[50]; gets(a); put(a);你輸入一個字符就會打印一個字符但如果是字符變量 char a='x'; char a; puts(a); 或 gets(a); puts(a);就無法運行char a[50]用scanf("%s",a)能獲取數(shù)組a的值,用a=getchar()無法獲取,用gets(a)能獲取a的值用printf("%s",a)能打印數(shù)組a的值 用putchar(a)無法打印,用puts(a)能打印a的值字符串(數(shù)組)方面:gets()和puts()第一,scanf()和printf()第2,getchar()和putchar()敗可見scanf()和printf()什么都能實現(xiàn),但對字符和字符串操作沒有其他兩種好getchar()和putchar()對字符操作優(yōu)勢明顯,但不能操作數(shù)字變量,字符數(shù)組變量gets()和puts()對字符串操作優(yōu)勢明顯,但也不能操作數(shù)字變量,字符變量scanf()和printf()格式輸入輸出能同時按格式一起輸入輸出字符,數(shù)字,字符串這是其他兩種不能比的所以程序以scanf()和printf()為主,其他兩種作為輔助,發(fā)揮各自的長處。最后來個總結(jié),用程序表示#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); }
我們提供的服務有:成都網(wǎng)站建設、網(wǎng)站設計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、臨湘ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的臨湘網(wǎng)站制作公司
#includestdio.h
void main() { char list[100000];
scanf("%s",list); //以空格換行結(jié)束輸入
}
void main() { char list[100000];
gets(list); //以換行結(jié)束輸入,可以輸入空格
}
void main() { char list[100000]; int n=0;
while ( 1 ) {
list[n]=getchar();
if ( list[n]=='\n' ) break; else n++; //判斷輸入換行結(jié)束,也可以改成其他字符結(jié)束
}
}
可以考慮用鏈表實現(xiàn),也可以用C++的new分配內(nèi)存.
NEW
從堆中劃分一塊區(qū)域,動態(tài)創(chuàng)建一個類型的數(shù)據(jù),最后返回該區(qū)域的指針.該數(shù)據(jù)類型可以是標準數(shù)據(jù)類型,也可以是用戶自定義類型.數(shù)據(jù)使用完后,應調(diào)用free()來釋放動態(tài)申請的內(nèi)存(在堆中).
New 關鍵字引入 New 子句,該子句創(chuàng)建一個新的對象實例。New 子句必須指定一個可以用來創(chuàng)建實例的已定義類??梢栽诼暶髡Z句或賦值語句中使用 New。執(zhí)行該語句時,它將調(diào)用指定類的構(gòu)造函數(shù),傳遞您提供的所有參數(shù):
Dim Obj As Object
Obj = New SomeClass("String required by constructor")
' ...
Dim MyLabel As New Label()
由于數(shù)組是類,因此 New 可以創(chuàng)建新的數(shù)組實例:
Dim MyArray As Integer()
MyArray = New Integer() {0, 1, 2, 3}
如果內(nèi)存不足,無法創(chuàng)建新的實例,公共語言運行庫將引發(fā) OutOfMemoryException 錯誤。
main函數(shù)作如下修改,就能正常運行。輸入數(shù)據(jù)的時候,以-1作為結(jié)束標志。
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);
}
}