***************************
File *inFile;
char *buff;
char temp=0;
int i=0;
int ctr=0;
buff=(char *)(malloc(sizeof(1024));
inFile=fopen("input.txt","r");
fgets(buff, 1024, inFile);
while(!feof(inFile))
{
i=0;
while(temp!='\n')
{
temp=buff[i]; //Iterating through the buffered line, looking for a
space
if(temp==32) //32 is the ascii for a space
ctr++;
i++;
}
ctr++; //This accounts for the last word in the line, since it's not
//followed by a space
fgets(buff, 1024, inFile);
}
fclose(inFile);
***************************
I haven't tested that, but it should work, or should be very close to
working.
There may be minor areas.
The number of words will be in ctr at the fclose, at least
theoretically.
Hope that helps.
as****@purdue.edu wrote:
Hi Gary
This is just a thought, but why don't you put a counter on every time a
space is found?
As long as you properly detect when to exit your loop, that should
suffice.
Gary Wessle wrote:
Gary Wessle <ph****@yahoo.comwrites:
hi
I have a data file with equal number of columns for each row. I need
to get the number of rows and columns to allocate a matrix in gsl.
>
getline (in, line) and parse the line for the number of spaces then
add one to get the number of words then
number_of_rows = 1;
while getline (in, line) and number_of_rows++ does the number of rows
>
I am not sure how to go about the number of words task, is there a c++
approved regex for c++?
because
string word
while(in >word) count++ will go through the whole file. I just want
one line.
>
thanks
I tried
ifstream in(file_name.c_str());
string line = getline(in, line);
stringstream input( line.c_str() );
string word;
nCol = 0;
while(inpput >word)
nCol++;
did not do it