在使用printf通过格式字符串打印字符时,我观察到了一些无法解释的行为。似乎当字符是换行符('\n')时,printf忽略(包括)‘'%c’‘的所有内容,只打印剩余的部分。
下面是一个最小的示例(禁用优化的用户输入):
#include <stdio.h>
int main(){
int c;
scanf("%d", &c); //read char by ascii id
printf("FOO%cBAR (id %i)\n", c,c);
return 0;
}
输入45 (代码'
我编写了一个函数,将书籍上的信息存储到struct中,除了书名有空格外,一切都很正常。因此,像Dracula这样的东西将被存储并显示得很好,但是像Lord of the Rings这样的东西只会跳过扫描书的其余信息,然后继续关闭程序。是否有任何方法使用scanf将字符串注册为空白?这是我的密码:
void addBook(struct Book book[], int *size)
{
if(*size== MAX_BOOKS) {
printf("the inventory is full.\n");
}
我正在编写一个程序,它使用fgets()来扫描一个3Char长字符串作为出发和到达的机场代码。当我在其方法之外(在主体中)编写语句时,它工作得很好,但是在它内部不等待输入,并将变量留空。
void newFlight ()
{
printf("\n");
printf("============= CREATE A NEW FLIGHT ============= \n");
printf("Type 0 at any point to exit to main menu. \n");
我试图读取用户输入,并将其存储为字符串,包括空格。我搜索了一个解决方案,并被指向fget()或scanf(%^\n,str)。但这两种解决方案都给了我一个错误。
这就是我所拥有的:
//MAX_CHARACTERS is set to 30
scanf("%d", &input);
if (input == 1){
int pr;
char na[MAX_CHARACTERS+1];
printf("\nEnter the name: ");
scanf("%[^\t\n]
我已经写了一个小代码来获得从华氏温度到摄氏度的值。我想一直输入数据,直到我按下'y‘以外的任何键。但是这个循环不是这样工作的,它会在一次迭代后停止。
#include <stdio.h>
int main()
{
char ch='y';
int far, cen;
do {
printf("again\n");
scanf("%d",&far);
//cen = (5.0/9.0)*(far-32);//integer division will truncate to zero so we
新来的。我已经做了大约一个月了(从C到Obj C到Cocoa到iOS应用程序进展)
回到一些基本的C语言之后,我很困惑地发现了一个显然很常见的问题我尝试将#c添加到第二个scanf中,我也尝试在其中添加一个空格,但是它仍然跳过了第二个scanf,并且我总是返回0作为我的平均值。我知道有比scanf更好的输入命令。但就目前而言,必须有办法让像这样简单的事情起作用吗?
谢谢!~史蒂夫
int x;
int y;
printf("Enter first number:");
scanf("#i", &x);
printf("Enter second
当我尝试运行这个程序时,它会自动将空值分配给person 1(输入),而不会给它提供任何名称作为输入。从人员2开始它工作正常...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int comp(const void * a, const void * b )
{
return strcmp(*(char **)a, *(char **)b);
}
int main ()
{
int n;
printf("enter no of persons:
我搞不懂扫描如何与getchar协同工作。我是在这样的假设下获得用户输入的,然后当用户按下enter就分别分配输入。而getchar则通过获取每个字符并将其赋值给分配给getchar的变量来工作。看看这段代码:
#include <stdio.h>
int main (){
int num, i;
char ch;
printf("Enter an expression: ");
scanf("%d", &i);
while ((ch = getchar()) != '\n'){
这是我的代码:
int main(void)
{
char newr;
lol:
scanf("%c", &newr);
switch (newr) {
case 'a':
goto killswitch;
case 'b':
printf("You entered %c", newr);
goto lol;
break;
default:
printf("you entered something other than a or b\a\n");
go
如果我在scanf语句中提供字符串"Alice in wonder land“,下面的代码(底部的代码)的输出会是什么?我的书说输出应该是:
Alice
in
wonder
land
好吧,如果我提供了一个单独的字符串“爱丽丝梦游仙境”,为什么输出是这样的?当我将"Alice in wonder land“作为单个字符串提供时,如何在单词"Alice”、" in“、"wonder”和"land“之间提供空格,使它们成为单独的字符串?
#include<stdio.h>
void main()
{
char s1[10], s2
#include<stdio.h>
#include<conio.h>
void main()
{
int a,b,c;
char ch;
printf("Enter value of a and b");
scanf("%d %d",&a,&b);
printf("Enter choice of operation");
scanf("%c",&ch);// **Here this statment is not able to receive my inp
我只是开始C,我不知道为什么会这样。当我执行程序时,它只在service_code数组中存储了一个值。出于某种原因,scanf()将循环计数器i保持为0。我找不到解决办法。scanf()导致for循环无限地运行。有人知道怎么解决这个问题吗?
#include <stdio.h>
#include <string.h>
int main() {
char name [100];
char str [10];
int discount = 0 ;
int age;
char service_codes[4][6];
printf("Welcome t
我有这个密码。
#include <stdio.h>
struct name
{
int age;
char fullname[20];
};
struct name names[20];
int main()
{
int n,i;
printf("Count of names:\n");
scanf("%d",&n);
for (i = 0; i < n; i++)
{
printf("Name %d : ",i);
scanf