2011-09-14 87 views
1

我並不真正瞭解C.因此,我的問題和想法可能是誤導或荒謬的或令人尷尬的。請原諒我..允許用戶在命令提示符下鍵入多行,使用C

該問題指出,該程序應從命令提示符處獲得用戶輸入。輸入文本將包含數字,字母和空格字符。他們也會有多條線..

示例程序使用<stdio.h>,因此使用printfscanf。根據課本,不鼓勵使用cincout。爲了使用cincout,我需要<iostream>但我不能include<iostream>。即使我可以包括<iostream>,但我不能include<stdio.h>了。我不能使用string。我聽說C不允許使用string,但我不明白爲什麼。


我的問題是;當你要求用戶輸入printf("Enter your text: ");時,他們只能輸入一行。一旦他們擊中Enter,程序就會收到它。

有沒有辦法使用scanf來允許用戶鍵入多行,例如鍵入Shift+Enter

由於string不可用,我應該使用char數組,如char inputText[999]?這會給我足夠的空間嗎?

我的兩個問題是;如何讓用戶在命令提示符下鍵入多行,以及我應該使用什麼數據類型來保存輸入的文本?

我GOOGLE了它,但他們混合C++和C ..

感謝所有和我再次道歉,如果我的問題是時間給你浪費..

大家好,我已經做了..但我只有一個多問題..

#include <stdio.h> 
#include <stdlib.h> 

int nc=0,nw=0,bs=0,c, nq=0, nl=0; 
int main() 
{ 
    printf("Text Analysis Program\n\n"); 
    printf("Enter your text:"); 
    while((c=getchar())!=EOF) 
    { 
     if((c>='A' && c<='Z') || (c>='a' && c<='z')) 
     { 
      nc++; 
     } 
     else if(c>='0' && c<='9') 
     { 
      nq++; 
     } 
     else if (c==' ') 
     { 
      nw++; 
      bs++;  
     } 
     else if (c=='\n') 
     { 
      nw++; 
      nl++; 
     } 
    } 
    printf("Number of characters: %d;\n",nc); 
    printf("Number of words: %d;\n",nw); 
    printf("Number of numerical quantities: %d;\n",nq); 
    printf("Number of blank spaces: %d;\n",bs); 
    printf("Number of lines entered: %d;\n",nl); 
    exit(0); 
} 

在結束時,顯示的答案後,cmd屏幕關閉馬上..我刪除exit(0)它仍然是相同的。是否有任何命令凍結屏幕,並出現Press any key to continue

+0

我們不打算爲你做功課,你需要展示你到目前爲止所嘗試的內容,並解釋它如何不如預期的那樣工作。我們可以幫助您找出問題所在。如果我們爲你做這件事,你將不會學到任何東西,我們中的一些人最終可能會試圖解決你將來工作的事情。 :)請編輯您的帖子以提供上述信息,此處有人會樂意嘗試和幫助您。提示:你可以在循環中調用scanf,直到它變成新行('\ n')。 –

+0

好的..代碼是在家..現在我在工作..所以,我會回覆時,我回家.. .. – william

+0

如果你的程序是C,你不能使用''或'cin'或'cout';那些是C++設施。 –

回答

0

只需要添加另外getchar()電話:

#include <stdio.h> 

int main() { 
    printf("Press any key to continue. "); 
    fflush(stdout); 
    getchar(); 
    return 0; 
} 

它實際上不會返回,直到你輸入一個完整的行或它碰到EOF,但它應該是足夠好。

1

這些:

#include <iostream> 
#include <string> 
cin 
cout 

是C++ - 特異性的。它們根本不存在於C中。請記住,C和C++是兩種不同的語言。

程序終止時窗口關閉的事實是您正在使用的開發系統的功能。如果從命令提示符運行該程序,則不會發生這種情況 - 或者IDE中可能會有一個選項告訴它保持該窗口處於打開狀態,直到您明確關閉該窗口。但如果你不想這樣做,J.F.塞巴斯蒂安的解決方案是一個很好的解決方案。

另一個提示:看看<ctype.h>中的isalpha()isdigit()函數。

相關問題