Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Need Help with C executable

  1. Nov 18, 2004 #1
    I've written the following code to experiment on reading from text files...however, the "fopen" statement is apparently returning a NULL pointer. What could be the problem here?...trial.txt is in the same directory as the executable. In addition, if I put return 1 after the printf("ERROR"); line...the executable window flashes as if system("pause") wasn't specified--how do i still get to view the executable after specifying return 1?? Also when i do a debug, it returns the error

    MAIN-T~1.EXE: No such file or directory.

    Now the part I really don't get...if i run this program from DOS...it works!...it prints Success and the content of the trial.txt file...how could that be?

    #include <stdio.h>
    #include <stdlib.h>
    int main(int argc, char *argv[])
    { FILE *ptr;
    char c;
    ptr=fopen("trial.txt", "r");
    { printf("ERROR");
    else{ printf("Success");

    else {break;}
    printf("Now closing file...\n");
    return 0;
  2. jcsd
  3. Nov 19, 2004 #2
    probably where you run the executable the path is not set to include the current directory (while in DOS it is)

    You do not get the pause because if you return the rest of the code (after the return statement) is not executed, so to still have the pause you have to place the system("pause") before the return statement.
  4. Nov 19, 2004 #3
    If you're running Visual C++ it puts the executable in the 'debug' directory by default, or 'release' if you set it to that.

    Put a path in the filename. If you're on Windows, remember that the backslash character is used as an escape character by C, so you have to double them up. For example:

    "c:\\my files\\test\\debug\\trial.txt"
  5. Nov 19, 2004 #4
    Thanks alot ceptimus and gerben!

    My code works now...the path was wrong....for some reason all my files are saved on the D: but DevC is in the C: drive....and I didn't think to put the system(pause) in that part of the code....but hey, all's well now...thanks alot!

    Aurel.. :smile:
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook