2016-11-03 15 views
-1

scansf関数を使用して、someonesという名前を一度に取得し、各文字を配列の1つのレイヤに格納するプログラムを作成しようとしています。例えば 入力した名前は「ティム」であれば、それは何をすべきか:C - scanfを使用して文字列を配列にスキャンする

array[0]=t 
array[1]=i 
array[2]=m 
array[3]=\0 

私は他の脅威でこれを読んだことがあるが、それは仕事をdoesn't:

#include <stdio.h> 

int main(void) { 
    char array[256]; 
    scanf_s("%s", array); 
    printf_s("%s", array); 
    return 0; 
} 

それは、このエラーメッセージが出ています:

enter image description here

英語:
Exep位置0x01300000に

を書きながらションは0x0FAA0B5C
アクセス違反でトリガ方法をはいた場合のscanf機能を使用することも可能ですか? または、より良い選択肢がありますか?



コード働くバッファパラメータ追加していただきありがとうございます:

#include <stdio.h> 
#include "stdafx.h" 

int main(void) { 
    char array[256]; 
    scanf_s("%255s", array, 256); 
    printf("%s", array); 
    return 0; 
} 
+0

を持って、私はドイツ語理解していないが、それはクラッシュのように見えます。 ['scanf_s'](https://msdn.microsoft.com/en-us/library/w40768et.aspx)を正しく使用していないため、おそらくそれを取得します。 –

+2

'scanf_s("%255s "、array、256);'バッファサイズパラメータを追加する必要があります。 –

+0

scanf_s( "%s"、array、sizeof(array))を試してみましたか? –

答えて

0

は、単に_sなしscanfを使用することが可能である

#include <stdio.h> 

int main(void) { 
    char array[256]; 
    scanf("%s", array); 
    printf("%s", array); 
    return 0; 
} 
+0

visual studio 2015は>コードC4996 'scanf'は保存されていません –

+0

Visual Studioは、セキュリティ上の問題によりscanf機能を制限することがあります。 scanf_sを使用できます。 –

+0

あなたが指定した値が256文字以下になることを確認してください。 –

0

scanf関数を使用します。例えば:あなたはscanf_sを使用したい場合は

scanf("%s",array); 
printf("%s\n", array); 
関連する問題