0

I've just wrote this program and when i compile, there is an error at the red color fonts.
Can i know what's the error?
thank you.

char quest;
char words[50];
int count;
int z;
ofstream file;
file.open("WORDS.txt" , ios::app);
file.close();

cin.ignore(50,'\n');
cout << "\n\n Please enter the word that need to be deleted: ";
cin.getline(words,50,'\n');

for (int i=0; i<strlen(words); i++)
{
words= tolower(words);
z = count + 5;

}

for (i=0; i < count; i++)
{
if ( strcmp( words,words) == 0 )
z = i;
}


if (z<count)
{
ofstream file;
file.open("WORDS.txt", ios::app);

for ( i=0; i < count; i++)
{
if ( i!=z )
cout << words << endl;
}


system("del words.txt");
system("ren words.txt words.txt");
}

5
Contributors
6
Replies
7
Views
12 Years
Discussion Span
Last Post by gusano79
0

ah it's simple, just do for(int i=0; i<.......

A for loop has it's own scope so you have to declare the i again.

0

Variable z and count are never initialized. You should start with int z=0 and int count=0. When you get into the loop, count is an unknown value

0

No wait. You are trying to compare individual letters with strings when you use
words. strcmp() can only accept string arguments.

0

yes..

this one was just a part of my program.
just can't figure out the problem...
error message says:
error c2664: 'strcmp' : cannot convert parameter 1 from 'char' to 'const char*'

..but then, i didn't use pointers

0

The second parameter to strcmp up there is actually a pointer--that's half of what an array is, just a location in memory (the other half is the field size, in this case char, to use when making offsets into the array).

...
if ( strcmp( words,words) == 0 )
...
error message says:
error c2664: 'strcmp' : cannot convert parameter 1 from 'char' to 'const char*'

..but then, i didn't use pointers

A few additional comments:

The value of count doesn't change, so it doesn't have to be in the loop--if that line assigning to z is really what you want to do.

...
for (int i=0; i<strlen(words); i++)
{
words= tolower(words);
z = count + 5;

}
...

Similar idea here. The loop will always end with i equal to count - 1, so making that last assignment to z doesn't have to be inside the loop--again, if that's what you want it to do.

...
for (i=0; i < count; i++)
{
if ( strcmp( words,words) == 0 )
z = i;
}
...

Continuing the same line of thought, z<count will always be true, so the if statement isn't necessary.

...
if (z<count)
{
ofstream file;
file.open("WORDS.txt", ios::app);
...

This last bit is a little strange--renaming a file that no longer exists?

...
system("del words.txt");
system("ren words.txt words.txt");
}
...

--sg

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.