我无法使用此代码,因为我无法编写任何文本。 如何通过阅读解决这个问题?
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "string.h"
int _tmain(int argc, _TCHAR* argv[])
{
char str[1024];
printf("Input text: ");
scanf_s("%c", str);
_asm
{
//some assembly code
}
printf("\n\nResult = %s", str);
printf("\n\n[Press any key]");
_getch();
return 0;
}
结果是
Input text: sdf
Result =
[Press any key]
任何想法?我使用的是Visual Studio 2013。
答案 0 :(得分:3)
我不知道函数scanf_s
,所以我查了documentation。它指出,需要为格式说明符scanf
,scanf_s
,c
和C
指定s
S
缓冲区大小的char str[1024];
printf("Input text: ");
scanf_s("%s", str, 1024);
。作为通常的第二个参数。一个例子:
{{1}}
文档还指出,如果潜在的缓冲区溢出,则不会向缓冲区写入任何内容。
答案 1 :(得分:2)
中的
%c
格式说明符
scanf_s("%c", str);
请求读取一个char
。
printf("\n\nResult = %s", str);
稍后请求打印str
的内容,直到第一个char
的值'\0'
为止。这会导致未定义的行为,因为您只初始化了str
的第一个元素。您有时可能会设法打印一系列堆栈内存;其他时候你的程序会崩溃。
假设您想要读取以空字符结尾的字符数组,则需要在读取用户输入时使用%s
格式说明符:
scanf_s("%s", str);
答案 2 :(得分:0)
使用如下..
scanf("%[0-9a-zA-Z ]s", str);
%c只会从输入值中读取一个字符。
%s将读取一个单词(直到空格)
Any number of non-whitespace characters, stopping at the first whitespace character found. A terminating null character is automatically added at the end of the stored sequence.
答案 3 :(得分:0)
我遇到了同样的问题,我收集了几个答案,并让用户用空格和数字写下他的名字,谢谢!
<!DOCTYPE html>
<html>
<head>
<link href="./styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Anaheim" rel="stylesheet">
<meta charset="UTF-8">
<title>NASA Photo Of The Day</title>
</head>
<body>
<div id='app'>
<section class='hero'>
<h1 class='title'>{{ title }}</h1>
</section>
<section class='picture-area'>
<div class='info'>
<h2>{{ images[currentNumber].title }}</h2>
<p v-bind='description'>{{ description }}</p>
<img class='image-of-day' :src='images[currentNumber].image' />
<p class='date'>{{ images[currentNumber].date }}</p>
<button :disabled="!isPrevPhotoAvailable" v-on:click="previous" class='backward'>previous</button>
<button :disabled="!isNextPhotoAvailable" v-on:click="next" :class="{disabledButton: !isNextPhotoAvailable}" class='forward'>next</button>
</div>
</section>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script src="https://unpkg.com/axios@0.12.0/dist/axios.min.js"></script>
<script src='./index.js'></script>
</body>
</html>