2016-06-22 12 views
-7

cinを使用し、cppの他の文字列関数を使用してchar配列の形式で文字列を読み取る方法。 whileループを使用しようとしましたが、サイズが指定されていない場合、ループを終了する条件は何ですか。 私はwhile('\0')を使用しましたが、機能しませんでした。char配列: - cinを使用し、他の文字列関数を使用してchar配列の形式で文字列を読み込む方法

+0

http://stackoverflow.com/questions/29477567/using-cin-for-char-array –

+0

あなたは試したことの[MCVE]を投稿することがあります。エラーを修正する手助けをしてくれるかもしれません。 –

+1

while( '\ 0') 'ループは起動しません。 –

答えて

-1

あなたは文字配列、例えばお持ちの場合:

char szExample[] = "Hello World"; 

をあなたがして、それを処理することができます

char* ptr = &szExample[0]; 
    //Look while ptr doesn't point to null terminator 
    while(*ptr) { 
    //Do something... 
    //Increment pointer 
     ptr++; 
    } 
0

あなたはcin.getline()を使用することができます:場合

char s[1024]; 
std::cin.getline(s, 1024, '\n'); 
std::cout << s << std::endl; 
+0

サイズが指定されていない –

+0

私は大きな配列を使用していることを認識しています。入力がそれよりも大きくなることが予想される場合は、配列を大きくします。それは複数の方法のうちのただ一つです。 cin.getlineはユーザーが1024文字を入力するかEnterキー(\ n文字)を入力すると復帰しますが、どちらも変更できます – iedoc

-1

をサイズが指定されていない場合は、必要に応じてchar配列のサイズをmaximunに設定することができます scanf() char配列を読み込み、さらにヘッダstdio.hscanf()を追加します。

例:inputedチャー使用STRLEN()の長さを知るため

#include<stdio.h>/#include<cstdio> 
char array[100000]; 
scanf("%s",&array); 

int size=strlen(array); 
printf("%s\n",array); 
printf("%d\n",size); 

入力:

ghostrecon

出力:

ghostrecon

+1

これらの操作は行わないでください。これは古きよきCです。問題はC++です。 –

+0

私は "これを試してみる"必要はありません。それは悪いアドバイスと貧しいC + +です。そして、 'cin'と 'cout'を正しく動作させることができなければ、正しく使用していないでしょう。これについて多くの質問があります。 –

+0

cpp bro。それはcである –

0

あなたはそれが文字列データ型を使用することをお勧めしますchar配列の使用に関する厳格でない場合。

string s; 
char delimiter = '\n'; 
getline(cin, s, delimiter); 

ここでは、行全体が読み込まれます。
デリミタを'\0'のままにしておけば、sはEOFまでファイル全体を含みます。

関連する問題