[問題] C 無法輸入字串

作者: ccam (C.C.C)   2018-04-11 14:45:57
開發平台(Platform): (Ex: Win10, Linux, ...)
Win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Visual Studio 2017
問題(Question):
自己看書看到陣列的章節
有一個範例是輸入字串的,照著寫之後,除錯時沒問題
可以印出 "Enter a string: "
但是輸入任何字都出現錯誤
錯誤結果(Wrong Output):
0x0F75C6BC (ucrtbased.dll) 中 (於 Project1.exe) 擲回例外狀況: 0xC0000005:
寫入位置 0x01100000 時發生存取違規。
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
#include <stdio.h>
int main()
{
char str[20], string2[] = "string literal";
printf("Enter a string: ");
scanf_s("%s", str);
printf("string1 is: %s\nstring2 is: %s\n", str, string2);
return 0;
}
補充說明(Supplement):
求解惑,感謝。
作者: tjjh89017 (伊達政宗)   2018-04-11 14:48:00
scanf_s如果是%c %C %s %S,需要再多給一個長度限制的參數
作者: nicknick0630 (NICK)   2018-04-11 15:07:00
scanf_s("%s",str,20);或是把安全檢查關掉就可以直接用scanf("%s",str);
作者: tony02258 (Tony)   2018-04-12 13:44:00
#define _CRT_SECURE_NO_WARNINGS

Links booklink

Contact Us: admin [ a t ] ucptt.com