2014-05-17 33 views
-1
#define _CRT_SECURE_NO_WARNINGS 
#include <cmath> 
#include <cstdio> 
#include <string> 
int main(){ 
    char s = ' '; 
    while (s != NULL) 
    { 
     scanf ("%c", &s); 
     int a = 0; 
      if (s == '"') 
      { 
       if (a == 0) printf("``"); 
        else printf("''"); 
       a = 1- a; 

      } 
      else 
       printf("%c", s); 
    } 
    return 0; 
} 

這是我的代碼,我是C++新手,我正在爲uva.onlinejudge.org寫這個。輸入是一些我們不知道它的大小的文本。我想知道如何同時它的存在讓輸入(我試過小號!= NULL但程序不會停止,並得到了最後一個字符永遠)在現有的代碼如何在輸入存在時讀取輸入?

+4

您的問題被標記爲C++,所以有很多方法可以做到這一點。但是,您是否有使用C風格IO的特定原因? – jrd1

+0

屬於http://debug-my-code-for-me.com –

+1

這個問題似乎是脫離主題,因爲它是關於要求免費調試 –

回答

1
#include <iostream> 

// ... 

while (std::cin.get(s)) 
{ 
    // your code goes here 
} 

BTW,scanf應該std::scanf等等。標準函數都在std::名稱空間中,並且可能也可能不在全局名稱空間中找到。

+0

你確定它應該產生一個警告?雖然標準要求標準庫中聲明的符號位於'std'命名空間中,但它並不禁止它們出現在全局名稱空間中。兩個最多的實現就是這樣做的。我不認爲他們中的任何一個都會警告使用這些功能。 –

+0

你說得對,C++ 11'[headers]#4'具有明確允許名稱出現在全局名稱空間中的文本(實際上,它們是否未指定)。我不確定C++ 98是否具有該文本。 –

相關問題