Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

καλησπερα, εχω μια ασκηση και εχς κανει καποια πραγματα απλα δεν ξερω αν ειναι σωστη. η ασκηση ειναι η εξης¨

Γράψτε ένα πρόγραμμα το δημιουργεί ένα αρχείο με την ονομασία askisi2.txt και θα γράφει μέσα σε αυτό δύο φράσεις που θα του δίνει ο χρήστης.

Αφού τρέξτε το πρόγραμμα ανοίξτε το αρχείο με το Σημειωματάριο (Notepad) για να σιγουρευτείτε ότι περιέχει τις φράσεις που έδωσε ο χρήστης.

και εγω εχω κανει αυτο¨

#include "stdio.h"

 

main () {

char str[100];

FILE * fp;

 

fp = fopen("askisi2.txt", "w");

if (fp != 0) {

 

 

 

 

fprintf(fp, "Hello\n");

fprintf(fp, "Bye\n");

scanf("%s",str);

fclose(fp);

}

}

ειναι σωστο?

Δημοσ.

καλησπερα, εχω μια ασκηση και εχς κανει καποια πραγματα απλα δεν ξερω αν ειναι σωστη. η ασκηση ειναι η εξης¨

Γράψτε ένα πρόγραμμα το δημιουργεί ένα αρχείο με την ονομασία askisi2.txt και θα γράφει μέσα σε αυτό δύο φράσεις που θα του δίνει ο χρήστης.

Αφού τρέξτε το πρόγραμμα ανοίξτε το αρχείο με το Σημειωματάριο (Notepad) για να σιγουρευτείτε ότι περιέχει τις φράσεις που έδωσε ο χρήστης.

και εγω εχω κανει αυτο¨

#include "stdio.h"

 

main () {

char str[100];

FILE * fp;

 

fp = fopen("askisi2.txt", "w");

if (fp != 0) {

 

 

 

 

fprintf(fp, "Hello\n");

fprintf(fp, "Bye\n");

scanf("%s",str);

fclose(fp);

}

}

ειναι σωστο?

 

Δεν νομίζω αυτό που κάνεις οτι είναι αυτό που σου ζητάει η άσκηση. Θα πρέπει να γράφεις στο αρχείο τις 2 φράσεις που Ο ΧΡΗΣΤΗΣ σου έχει δώσει, όχι να τις γράφεις εσύ:

 

>
  printf("Εισάγετε φράση 1:");
  gets(str);
  fprintf(fp, str);
  printf("\nΕισάγετε φράση 2:");
  gets(str);
  fprintf(fp, str);
  fclose(fp);

 

έτσι δεν είναι? ;)

 

θα το έκανα με gets() (εγώ προσωπικά) ...

 

 

 

 

[/code]

Δημοσ.

εισαι σιγουρος? εγω νομιζω οτι πρεπει να τις δωσουμε εμεις τις φρασεις

 

Γράψτε ένα πρόγραμμα το δημιουργεί ένα αρχείο με την ονομασία askisi2.txt και θα γράφει μέσα σε αυτό δύο φράσεις που θα του δίνει ο χρήστης.

Αφού τρέξτε το πρόγραμμα ανοίξτε το αρχείο με το Σημειωματάριο (Notepad) για να σιγουρευτείτε ότι περιέχει τις φράσεις που έδωσε ο χρήστης.

 

Νομίζω οτι το Bold & Underline στα λέει όλα ;)

Δημοσ.

Γράψτε ένα πρόγραμμα το δημιουργεί ένα αρχείο με την ονομασία askisi2.txt και θα γράφει μέσα σε αυτό δύο φράσεις που θα του δίνει ο χρήστης.

Αφού τρέξτε το πρόγραμμα ανοίξτε το αρχείο με το Σημειωματάριο (Notepad) για να σιγουρευτείτε ότι περιέχει τις φράσεις που έδωσε ο χρήστης.

 

Νομίζω οτι το Bold & Underline στα λέει όλα ;)

 

ωχ δικιο εχεις!!!!!!

Δημοσ.

ωχ δικιο εχεις!!!!!!

 

Διάβαζε καλύτερα τις προσφωνήσεις σου, είναι κρίμα να χάσεις τους βαθμούς της άσκησης από τέτοιο λάθος .. ;)

Δημοσ.

Διάβαζε καλύτερα τις προσφωνήσεις σου, είναι κρίμα να χάσεις τους βαθμούς της άσκησης από τέτοιο λάθος .. ;)

να σε ρωτησω και κατι αλλο? εχω αυτο το προγραμμα

#include <stdio.h>

 

void makeDouble(int y)

{

y = y * 2;

}

 

main () {

int x;

printf("Dwse ari8mo");

scanf("%d", &x);

makeDouble(x);

printf("H nea timi tis metablitis einai %d", x);

}

και η ασκηση μου ζηταει να εξηγησω γιατι η συναρτηση που περιεχεται δεν διπλασιαζει την τιμη της παραμετρου που της δινουμε. αλλα δεν μπορω να βρω πουθενα το λαθος!

Δημοσ.

...

θα το έκανα με gets() (εγώ προσωπικά) ...

Γιατί με gets(); Δεν παρέχει προστασία από buffer overruns... με fgets() καλύτερα, με την οποία μπορεί να κοντρολάρει το πλήθος των χαρακτήρων που θα αναγνωστούν.

 

ΥΓ. Btw, η gets() καταργήθηκε (επιτέλους) στο C11 standard.

Δημοσ.

Γιατί με gets(); Δεν παρέχει προστασία από buffer overruns... με fgets() καλύτερα, με την οποία μπορεί να κοντρολάρει το πλήθος των χαρακτήρων που θα αναγνωστούν.

 

ΥΓ. Btw, η gets() καταργήθηκε (επιτέλους) στο C11 standard.

 

Επειδή μιλάει για εργασία, και συνήθως χρησιμοποιούν τον Bloodshed DEV C++, είναι πιο κοντά στα πρότυπα που τους διδάσκουν. Γι'αυτό και επέλεξα την gets(). Άλλωστε δεν νομίζω σε αυτό το επίπεδο να τους νοιάζουν ιδιαίτερα τα buffer overruns ;)

Δημοσ.

Επειδή μιλάει για εργασία, και συνήθως χρησιμοποιούν τον Bloodshed DEV C++, είναι πιο κοντά στα πρότυπα που τους διδάσκουν. Γι'αυτό και επέλεξα την gets(). Άλλωστε δεν νομίζω σε αυτό το επίπεδο να τους νοιάζουν ιδιαίτερα τα buffer overruns ;)

 

Σε αυτή την περίπτωση ίσως είναι καλύτερα να χρησιμοποιήσει scanf() μιας και η gets() είναι έτσι κι αλλιώς marked as depreciated από το C99 ;)

 

ΥΓ. Προσωπικά είμαι της άποψης πως θα πρέπει εξαρχής να μαθαίνουν να κάνουν handle τα string overflows στο input, αλλιώς αναπτύσσουν bad-habits. Το συγκεκριμένο bad-habit για την είσοδο strings (είτε με scanf() είτε me gets() ) οδηγεί με μαθηματική ακρίβεια σε προβληματικό κώδικα.

Δημοσ.

Ρε παιδιά, γιατί δεν επισημαίνει κανείς το βασικό πρώτα από όλα, ότι μιλάμε για γλώσσα C και όχι C++.

 

Οποτε, μαρία123 (που εύχομαι να είσαι άντρας με fake γυναικείο nick γιατί αποδεικνύεις περίτρανα πως συμπεριφέρεται ο κόσμος του forum εντελώς διαφορετικά στα ίδια post ανάλογα με το φύλο του μέλους. :-D Κοινώς αν το nick σου ήταν μάριος123 τώρα θα σου είχαν σύρει τα μύρια όσα) η γλώσσα που γραφεις είναι C.

 

Έχει μεγάλη διαφορα από τη C++ και θα τη μάθεις αργότερα στη σχολη σου.

 

Απλά επειδή μάλλον το περοβάλλον που έχεις κατεβάσει λέγεται DevC++ θεωρείς ότι είναι όλα C++.

 

Δεν είναι. Απλά στο DevC++ (για λόγους που θα καταλάβεις αν ψάξεις σε αλλα threads τοθ forum) μπορείς να γράψεις και τις 2 γλώσσες.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...