while loop!= string C

时间:2014-11-28 20:06:54

标签: c string while-loop

这个程序差不多完成了。唯一的问题是,当用户输入退出退出时,它应该关闭程序。但它并没有,它不断重复。我知道,如果我使用它一个字符(例如' q')它可以工作,因为我已经尝试过了。但我希望程序检测到用户输入了字符串"退出"。你能帮帮我吗?非常感谢!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FILENAME "sales.txt"

int main()
{
   char firstName[41];
   char itemSold[41];
   FILE *salesFile;

   salesFile = fopen(FILENAME, "w");

   if( salesFile == NULL )
   {
       printf("Error opening file\n");
       return 1;
   }

   printf("Please enter first name and item sold\n");
   printf("Please quit quit to end\n");
   printf("> ");
   scanf("%40s %40s", firstName, itemSold);

   while(firstName != "quit" && itemSold != "quit")
   {
       fprintf(salesFile, "%s %s\n", firstName, itemSold);
       printf("> ");
       scanf("%40s %40s", firstName, itemSold);
   }

   fclose(salesFile);

   return 0;


}

1 个答案:

答案 0 :(得分:1)

您比较的字符串不是:

firstName == "quit"
firstName != "quit"

(只是比较它们的地址),但是:

strcmp (firstName, "quit") == 0
strcmp (firstName, "quit") != 0

比较内容。