Below is my c code and the forever for(;;) loop is not breaking out base on the condition i have given it using an if statement. Is there something am doing wrong? my codes are as below:
#include <stdio.h>
main()
{
/*
* Program starts
*/
int tracks; /* tracks is declared as a variable for the number of tracks */
float price; /* Price is declared as variable for number of tracks */
char title[100]; /* title is declared as a varibel for the title of thr CD*/
char album_single[2]; /* album_single is a variable declared for either the CD is a single or an album */
char artiste[50];
printf("Welcome to the CD database\n\n");
printf("Please enter the details of the CD below...\n");
/*
* First, title
*/
printf("Title? ");
scanf("%[^\n]", title);
/*
* Next, Artiste
*/
printf("Artiste? ");
fflush(stdin);
scanf("%[^\n]", artiste);
/*
* Next, number of tracks
*/
printf("Number of Tracks? ");
fflush(stdin);
scanf("%d",&tracks);
/*
* Next, Type(album or single)
*/
for(; ;)
{
printf("ALbum or a single (Enter 'a' for an album and 's' for a single): ");
fflush(stdin);
scanf("%c", &album_single);
if(album_single == "a" || album_single == "s")
break;
printf("Error!\n");
}
/*
* Conditions to assign the right type(album/single) to the variable album_single
*/
if(strcmp(album_single, "a") == 0)
{
strcpy(album_single,"Album");
}
else
{
if(strcmp(album_single, "s") == 0)
strcpy(album_single, "single");
}
/*
* Finally, Price
*/
printf("Retail Price(e.g $4.66)? ");
fflush(stdin);
scanf("%f", &price);
/*
* Details, finallly output
*/
printf("\n\nDetails of %s's CD\n", title);
printf("========================\n");
printf("Title: %s\n",title);
printf("Artiste: %s\n", artiste);
printf("Number of tracks: %d\n",tracks);
printf("Album/Single: %s\n", album_single);
printf("Price:$ %.2f\n", price);
printf("========================\n");
/*
* User Friendly exit of the program
*/
printf("\n Press ENTER to exit the program.");
/*
* Program end
*/
fflush(stdin);
getchar();
}
Below is the part of the forever for(;;) loop which is not breaking out:
for(; ;)
{
printf("ALbum or a single (Enter 'a' for an album and 's' for a single): ");
fflush(stdin);
scanf("%c", &album_single);
if(album_single == "a" || album_single == "s")
break;
printf("Error!\n");
}
This loop keep on looping even if the input is 'a' or 's'. what am i doing wrong in this codes ?