Zápis do souboru v jazyce C: Porovnání verzí

Z Milan Kerslager
Přejít na: navigace, hledání
(Založení článku)
 
(Syntax on)
Řádka 1: Řádka 1:
#include <stdio.h>
+
<source lang="c">
#include <stdlib.h>
+
#include <stdio.h>
+
#include <stdlib.h>
int chyba(int err, char *txt)
+
 
{
+
int chyba(int err, char *txt)
  printf("Chyba %d: %s\n", err, txt);
+
{
  exit(err);
+
  printf("Chyba %d: %s\n", err, txt);
}
+
  exit(err);
+
}
int main(int argc, char *argv[])
+
 
{
+
int main(int argc, char *argv[])
  char *veta="Ahoj svete\n";
+
{
  FILE *vystup;
+
  char *veta="Ahoj svete\n";
+
  FILE *vystup;
  if (argc != 1) {
+
 
    if ((vystup = fopen(argv[1], "a+")) == NULL) {
+
  if (argc != 1) {
      chyba(1, "nelze otevrit pro zapis");
+
    if ((vystup = fopen(argv[1], "a+")) == NULL) {
    }
+
      chyba(1, "nelze otevrit pro zapis");
  } else {
+
    }
    chyba(2, "chybi parametr");
+
  } else {
  }
+
    chyba(2, "chybi parametr");
  if (fputs(veta, vystup) == EOF) {
+
  }
    chyba(3, "nelze zapsat");
+
  if (fputs(veta, vystup) == EOF) {
  }
+
    chyba(3, "nelze zapsat");
  return 0;
+
  }
}
+
  return 0;
 +
}
 +
</source>
  
 
== Cvičení ==
 
== Cvičení ==

Verze z 7. 9. 2008, 12:54

#include <stdio.h>
#include <stdlib.h>

int chyba(int err, char *txt)
{
  printf("Chyba %d: %s\n", err, txt);
  exit(err);
}

int main(int argc, char *argv[])
{
  char *veta="Ahoj svete\n";
  FILE *vystup;

  if (argc != 1) {
    if ((vystup = fopen(argv[1], "a+")) == NULL) {
      chyba(1, "nelze otevrit pro zapis");
    }
  } else {
    chyba(2, "chybi parametr");
  }
  if (fputs(veta, vystup) == EOF) {
    chyba(3, "nelze zapsat");
  }
  return 0;
}

Cvičení

Příklad 1
Upravte program, aby při absenci parametru zapisoval na standardní výstup.
Příklad 2
Upravte program, aby pro hlášení chyby používal funkci perror().