C++ 代码跳过 if 语句。不允许用户输入

标签 c++

C++ 编程新手。谁能告诉我下面的代码有什么问题?现在的问题是 if 语句忽略了你给它的任何值,只是转到 if 语句中的代码部分。

if 语句本身的代码也有问题。它不接受用户的任何输入。任何帮助将非常感激!谢谢。

#include <stdio.h>
#define SIZE 80
#include <iostream>
int main(void)
{
  FILE * pFile;
  int c; // variable to hold character input by user
  char sentence[SIZE]; // create char array
  int i = 0; // initialize counter i
  int number;
  std::cout << "Give a number. 1 for file. Anything else for standard.";
  std::cin >> number;
  std::cin.clear();

  if(number=1)
  {
   printf("Enter sentence to append: ");
   fgets(sentence,256,stdin);
    pFile=fopen("mylog.txt","a");
    fputs(sentence,pFile);
    fclose(pFile);
  }
 else
 {

   // prompt user to enter line of text
   puts("Enter a line of text:");

   // use getchar to read each character
   while ((i < SIZE-1) && (c = getchar()) != '\n') {
   sentence[i++] = c;}

   sentence[i]= '\0';

   // terminate string
   // use puts to display sentence

   puts("\nThe line entered was:");
   puts(sentence);
 }


 }

最佳答案

= 是赋值运算符。您只是将 number 的值设置为 1== 运算符将比较这两个值。

关于C++ 代码跳过 if 语句。不允许用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39842914/

相关文章:

C++ while循环,测试多个数组的下标

c++ - 如何使用 OpenCV 和 C++ 检测车牌中的数字?

c++ - 电子表格的 xml 格式

c++ - C/C++ - 计算函数调用中的参数

c++ - OpenGL 中的快速文本渲染

带有继承的 C++ 工厂

c++ - 是否可以在具有相同图像的多个设备上生成重复的 UUID(GUID)?

c++ - 打印时前一个指针的值不同

c++ - 猜数字 : How many guesses for computer to get correct number?

c++ - WinSparkle 静默自动更新