Monday, May 20, 2019
string - fscanf csv in C. Value not assigned
Answer
Answer
I have attempted to make a file to read a text file that contains CSVs. For some reason however some of the Fscanfs do not return a value but some do.
FILE* reader;
char OptionOne[30]="";
char OptionTwo[30]="";
char OptionThree[30]="";
char OptionFour[30]="";
char answer[1]="";
char CorrectAnswer[1];
char Question[51];
reader = fopen("C:\\Users\\Finley\\Desktop\\Programming\\QuizMachine\\QuizMachine\\fscanf_questions.txt", "r");
if (reader == NULL)
{
printf("Unable to Open File: %s\n", FileName);
}
fscanf(reader, "%[^,],", Question);
fscanf(reader, "%[^,],", OptionOne);
fscanf(reader, "%[^,],", OptionTwo);
fscanf(reader, "%[^,],", OptionThree);
fscanf(reader, "%[^,],", OptionFour);
fscanf(reader, "%[^,],", answer);
Why does the first fscanf return a value but all the others not return a value. I cannot see anything and they all seem the same with the same formating
File formatting is like this:
What function do you use to open a file?,fscanf,fclose,fopen,main,3
Which of the following is not a variable type?,int,float,char,string,4
Answer
Need to use buffers of adequate size. The answer, as a string needs at least 2
char.@Danielfscanf()should limit input to prevent buffer corruption. The width specifier is typically 1 less than the size of the buffer.char Question[51];
fscanf(reader, "%50[^,],", Question);The result of
fscanf()should be checked.if (fscanf(reader, "%50[^,],%29[^,],%29[^,],%29[^,],%29[^,],%1s",
Question, OptionOne, OptionTwo, OptionThree, OptionFour, answer) != 6) {
Handle_Bad_input();
}Do not use
"%[^,]"for the last value if input does not have a following',', elsefscanf()will read the next line.Suggest leading each
"[^,]"with a space to skip leading white-space.if (fscanf(reader, " %50[^,], %29[^,], %29[^,], %29[^,], %29[^,],%1s",Even better: Read the line with
fgets()and then scan the buffer.char buf[200];
if (fgets(buf, sizeof buf, reader) == NULL) Handle_IOErrorOrEOF();
if (sscanf(buffer, "%50[^,],%29[^,],%29[^,],%29[^,],%29[^,],%1s",
Question, OptionOne, OptionTwo, OptionThree, OptionFour, answer) != 6) {
Handle_Bad_input();
}
plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV
In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...
-
When the left part is an object instance, you use -> . Otherwise, you use :: . This means that -> is mostly used to access instance m...
-
I've been asked to update some Excel 2003 macros, but the VBA projects are password protected, and it seems there's a lack of docume...
-
I got a stupid problem with SQL that I can't fix. ALTER TABLE `news` ADD `dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO...
No comments:
Post a Comment