/* praise1.c -- 使用不同类型的字符串 */
#include <stdio.h>
#define PRAISE "You are an extraordinary being."
int main(void)
{
char name[40];
printf("What's your name? ");
scanf_s("%s", name,40);
printf("Hello, %s. %s\n", name, PRAISE);
return 0;
}
这章属实是折腾到我了。
书上文字内容倒还好,在代码这块,因为我用的VS17,和书的环境不一致,代码总是无法运行下去;
这次原因是scanf_s(" ", , )
第一个不同就是scanf进步成了scanf_s;
第二个不同就是引入字符串之后要把字符串的字符数给输入,如果不输入就无法进入到下一个输入状态...
// talkback.c -- 演示与用户交互
#include <stdio.h>
#include <string.h> // 提供strlen()函数的原型
#define DENSITY 62.4 // 人体密度(单位:磅/立方英尺)
int main()
{
float weight, volume;
int size, letters;
char name[40]; // name是一个可容纳40个字符的数组
printf("Hi! What's your first name?\n");
scanf_s("%s", name,40);
printf("%s, what's your weight in pounds?\n", name);
scanf_s("%f", &weight);
size = sizeof(name);
letters = strlen(name);
volume = weight / DENSITY;
printf("Well, %s, your volume is %2.2f cubic feet.\n", name, volume);
printf("Also, your first name has %d letters,\n", letters);
printf("and we have %d bytes to store it.\n", size);
return 0;
}