Debug Assertion Failed on code trying to read/write a text file









up vote
-1
down vote

favorite












#include <iostream>
#include <cstring>
#include <cstdio>
#include <iomanip>
#include <conio.h>
#include <cstdlib>



using namespace std;
int main()

FILE *fp;
char moreRecords, addRecord;

struct student

char firstName[100], lastName[100];
int courseNumber, sectionNumber;

;

struct student s;
char newLastName[100];
long int dbsize;
errno_t g;

g = fopen_s(&fp,"studentdb.txt", "r+");

if (g == NULL)
g = fopen_s(&fp,"studentdb.txt", "r+");

if (g == NULL)
puts("Can't open selected file");
return 0;



dbsize = sizeof(s);

while (1)
system("cls");

cout << "1. Add Records" << endl; //Lets the user add their records
cout << "2. List Records" << endl; //Lets the user List all the previous records
cout << "3. Modify Records" << endl; //Lets the user modify previously entered records
cout << "4. Delete Records" << endl; //Lets the user delete preciously entered records
cout << "5. Exit Program" << endl; //Exits the program
cout << "Please make a selection above:n";
//fflush(stdin);
addRecord = _getche();
switch (addRecord)

case '1' :
fseek(fp, 0, SEEK_END);
moreRecords = 'Y';
while (moreRecords == 'Y'



system("pause");
return 0;



So when I go through the initial options, it works for 3. Modify Records and 4. Delete Records. When you enter 1,2 or 5 it immediately breaks and gives me a Debug Assertion Failed error. It says
File: minkernelcrtsucrtsrcappcrtstdiofseek.cpp
Line: 177
Expression: stream.valid()
Tried debugging the code but wasn't able to find anything giving that error. Any help would be greatly appreciated.










share|improve this question





















  • What do you expect fopen_s to return on success?
    – Tim Randall
    Nov 8 at 20:10







  • 1




    "FILE *fp;" in a C++ program? Why? We have better ways than that old C stuff.
    – Jesper Juhl
    Nov 8 at 20:15











  • If you're used to using fopen then naturally you will want to see if the return value is NULL. But remember that NULL is just a macro that evaluates to 0. Microsoft in their wisdom decided that fopen_s should return 0 on success.
    – Tim Randall
    Nov 8 at 20:17














up vote
-1
down vote

favorite












#include <iostream>
#include <cstring>
#include <cstdio>
#include <iomanip>
#include <conio.h>
#include <cstdlib>



using namespace std;
int main()

FILE *fp;
char moreRecords, addRecord;

struct student

char firstName[100], lastName[100];
int courseNumber, sectionNumber;

;

struct student s;
char newLastName[100];
long int dbsize;
errno_t g;

g = fopen_s(&fp,"studentdb.txt", "r+");

if (g == NULL)
g = fopen_s(&fp,"studentdb.txt", "r+");

if (g == NULL)
puts("Can't open selected file");
return 0;



dbsize = sizeof(s);

while (1)
system("cls");

cout << "1. Add Records" << endl; //Lets the user add their records
cout << "2. List Records" << endl; //Lets the user List all the previous records
cout << "3. Modify Records" << endl; //Lets the user modify previously entered records
cout << "4. Delete Records" << endl; //Lets the user delete preciously entered records
cout << "5. Exit Program" << endl; //Exits the program
cout << "Please make a selection above:n";
//fflush(stdin);
addRecord = _getche();
switch (addRecord)

case '1' :
fseek(fp, 0, SEEK_END);
moreRecords = 'Y';
while (moreRecords == 'Y'



system("pause");
return 0;



So when I go through the initial options, it works for 3. Modify Records and 4. Delete Records. When you enter 1,2 or 5 it immediately breaks and gives me a Debug Assertion Failed error. It says
File: minkernelcrtsucrtsrcappcrtstdiofseek.cpp
Line: 177
Expression: stream.valid()
Tried debugging the code but wasn't able to find anything giving that error. Any help would be greatly appreciated.










share|improve this question





















  • What do you expect fopen_s to return on success?
    – Tim Randall
    Nov 8 at 20:10







  • 1




    "FILE *fp;" in a C++ program? Why? We have better ways than that old C stuff.
    – Jesper Juhl
    Nov 8 at 20:15











  • If you're used to using fopen then naturally you will want to see if the return value is NULL. But remember that NULL is just a macro that evaluates to 0. Microsoft in their wisdom decided that fopen_s should return 0 on success.
    – Tim Randall
    Nov 8 at 20:17












up vote
-1
down vote

favorite









up vote
-1
down vote

favorite











#include <iostream>
#include <cstring>
#include <cstdio>
#include <iomanip>
#include <conio.h>
#include <cstdlib>



using namespace std;
int main()

FILE *fp;
char moreRecords, addRecord;

struct student

char firstName[100], lastName[100];
int courseNumber, sectionNumber;

;

struct student s;
char newLastName[100];
long int dbsize;
errno_t g;

g = fopen_s(&fp,"studentdb.txt", "r+");

if (g == NULL)
g = fopen_s(&fp,"studentdb.txt", "r+");

if (g == NULL)
puts("Can't open selected file");
return 0;



dbsize = sizeof(s);

while (1)
system("cls");

cout << "1. Add Records" << endl; //Lets the user add their records
cout << "2. List Records" << endl; //Lets the user List all the previous records
cout << "3. Modify Records" << endl; //Lets the user modify previously entered records
cout << "4. Delete Records" << endl; //Lets the user delete preciously entered records
cout << "5. Exit Program" << endl; //Exits the program
cout << "Please make a selection above:n";
//fflush(stdin);
addRecord = _getche();
switch (addRecord)

case '1' :
fseek(fp, 0, SEEK_END);
moreRecords = 'Y';
while (moreRecords == 'Y'



system("pause");
return 0;



So when I go through the initial options, it works for 3. Modify Records and 4. Delete Records. When you enter 1,2 or 5 it immediately breaks and gives me a Debug Assertion Failed error. It says
File: minkernelcrtsucrtsrcappcrtstdiofseek.cpp
Line: 177
Expression: stream.valid()
Tried debugging the code but wasn't able to find anything giving that error. Any help would be greatly appreciated.










share|improve this question













#include <iostream>
#include <cstring>
#include <cstdio>
#include <iomanip>
#include <conio.h>
#include <cstdlib>



using namespace std;
int main()

FILE *fp;
char moreRecords, addRecord;

struct student

char firstName[100], lastName[100];
int courseNumber, sectionNumber;

;

struct student s;
char newLastName[100];
long int dbsize;
errno_t g;

g = fopen_s(&fp,"studentdb.txt", "r+");

if (g == NULL)
g = fopen_s(&fp,"studentdb.txt", "r+");

if (g == NULL)
puts("Can't open selected file");
return 0;



dbsize = sizeof(s);

while (1)
system("cls");

cout << "1. Add Records" << endl; //Lets the user add their records
cout << "2. List Records" << endl; //Lets the user List all the previous records
cout << "3. Modify Records" << endl; //Lets the user modify previously entered records
cout << "4. Delete Records" << endl; //Lets the user delete preciously entered records
cout << "5. Exit Program" << endl; //Exits the program
cout << "Please make a selection above:n";
//fflush(stdin);
addRecord = _getche();
switch (addRecord)

case '1' :
fseek(fp, 0, SEEK_END);
moreRecords = 'Y';
while (moreRecords == 'Y'



system("pause");
return 0;



So when I go through the initial options, it works for 3. Modify Records and 4. Delete Records. When you enter 1,2 or 5 it immediately breaks and gives me a Debug Assertion Failed error. It says
File: minkernelcrtsucrtsrcappcrtstdiofseek.cpp
Line: 177
Expression: stream.valid()
Tried debugging the code but wasn't able to find anything giving that error. Any help would be greatly appreciated.







c++






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 8 at 20:06









Gage

1




1











  • What do you expect fopen_s to return on success?
    – Tim Randall
    Nov 8 at 20:10







  • 1




    "FILE *fp;" in a C++ program? Why? We have better ways than that old C stuff.
    – Jesper Juhl
    Nov 8 at 20:15











  • If you're used to using fopen then naturally you will want to see if the return value is NULL. But remember that NULL is just a macro that evaluates to 0. Microsoft in their wisdom decided that fopen_s should return 0 on success.
    – Tim Randall
    Nov 8 at 20:17
















  • What do you expect fopen_s to return on success?
    – Tim Randall
    Nov 8 at 20:10







  • 1




    "FILE *fp;" in a C++ program? Why? We have better ways than that old C stuff.
    – Jesper Juhl
    Nov 8 at 20:15











  • If you're used to using fopen then naturally you will want to see if the return value is NULL. But remember that NULL is just a macro that evaluates to 0. Microsoft in their wisdom decided that fopen_s should return 0 on success.
    – Tim Randall
    Nov 8 at 20:17















What do you expect fopen_s to return on success?
– Tim Randall
Nov 8 at 20:10





What do you expect fopen_s to return on success?
– Tim Randall
Nov 8 at 20:10





1




1




"FILE *fp;" in a C++ program? Why? We have better ways than that old C stuff.
– Jesper Juhl
Nov 8 at 20:15





"FILE *fp;" in a C++ program? Why? We have better ways than that old C stuff.
– Jesper Juhl
Nov 8 at 20:15













If you're used to using fopen then naturally you will want to see if the return value is NULL. But remember that NULL is just a macro that evaluates to 0. Microsoft in their wisdom decided that fopen_s should return 0 on success.
– Tim Randall
Nov 8 at 20:17




If you're used to using fopen then naturally you will want to see if the return value is NULL. But remember that NULL is just a macro that evaluates to 0. Microsoft in their wisdom decided that fopen_s should return 0 on success.
– Tim Randall
Nov 8 at 20:17

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53215365%2fdebug-assertion-failed-on-code-trying-to-read-write-a-text-file%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes















 

draft saved


draft discarded















































 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53215365%2fdebug-assertion-failed-on-code-trying-to-read-write-a-text-file%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

Edmonton

Crossroads (UK TV series)