相关疑难解决方法(0)

使用scanf()输入字符的问题

我试图将一个角色输入一个链表,其中的角色可以是'A','a','G','g','T','t','C'或'c'.

我还不熟悉C,我知道我搞砸了一些东西:

do{
  printf ("\nEnter a new nucleotide: \n");
  scanf("%c",&newChar);
          /* Checking */
  if(newChar == 'A' ||
     newChar == 'a' || 
     newChar == 'G' || 
     newChar == 'g' || 
     newChar == 'T' || 
     newChar == 't' || 
     newChar == 'C' || 
     newChar == 'c' )
  {
    AddToSequence(newChar);
    size++;
  } else {
    printf ("\nBad Element");
  }
}while(newChar != 'x');
Run Code Online (Sandbox Code Playgroud)

newChar初始化为垃圾值,在本例中为"q".

输入'x'退出循环,输入任何可接受的值调用AddToSequence(),任何不可接受的值都会收到警告.

出于某种原因,无论newChar中有什么价值,它都会跳转到其他地方.它也会直接跳过scanf,无需等待用户输入,每次循环时都会执行两次循环.谁能告诉我哪里出错了?

完整计划:

#include<stdio.h>
#include<stdlib.h>

/*Structure declaration for the node*/
struct node{
   char nucleotide;
   struct node *point;
}*start;

/* Adds a …
Run Code Online (Sandbox Code Playgroud)

c input linked-list

3
推荐指数
2
解决办法
2万
查看次数

标签 统计

c ×1

input ×1

linked-list ×1