|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
|
26.9.2015, 0:54 | #1 |
Član
Član od: 5.12.2014.
Poruke: 100
Zahvalnice: 0
Zahvaljeno jedanput na jednoj poruci
|
Pitanje iz C++ u Visual Studio?
Zasto scanf ne radi u Visual Studio. Radio zilion puta u linuxu doduse C ali i C++ je isto samo njegovo prosirenje? Dakle prijavi gresku na na compajliranju kad koristim scanf evo koda:
#include "stdafx.h" #include <stdio.h> int main() { int n=10; for (int i = 0; i < 40; i++)printf("-"); printf("\n\nHello world\n\n"); for (int i = 0; i < 40; i++)printf("-"); printf("\n"); scanf("%d", n); printf("\n"); printf("\n"); printf("\n"); printf("You enter %d", n); printf("\n"); printf("\n"); printf("\n"); return 0; } evo ispravljen kod ali sad nece da ispise uno sto unesem moze pomoc?evo koda: #include "stdafx.h" #include <stdio.h> int main() { int n=10; for (int i = 0; i < 40; i++)printf("-"); printf("\n\nHello world\n\n"); for (int i = 0; i < 40; i++)printf("-"); printf("\n"); scanf_s("%d", n); printf("\n"); printf("\n"); printf("\n"); printf("You enter %d", n); printf("\n"); printf("\n"); printf("\n"); return 0; } Poslednja ispravka: The Majk (26.9.2015 u 0:56) Razlog: proverio kod i ispravio gresku koju je sugerisao visual studio |
26.9.2015, 3:17 | #2 |
Starosedelac
Član od: 18.7.2012.
Lokacija: Beograd, Srbija
Poruke: 1.258
Zahvalnice: 105
Zahvaljeno 238 puta na 210 poruka
|
Re: Pitanje iz C++ u Visual Studio?
Predkompajler (predprocesor) prijavljuje gresku, a ne kompajler. Da iskljucis upozorenja, koristi sledecu direktivu:
Kod:
_CRT_SECURE_NO_WARNINGS Kod:
scanf("%d", &n); |
26.9.2015, 14:58 | #3 | |
Član
Član od: 5.12.2014.
Poruke: 100
Zahvalnice: 0
Zahvaljeno jedanput na jednoj poruci
|
Re: Pitanje iz C++ u Visual Studio?
Citat:
|
|
26.9.2015, 17:52 | #4 | |
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: Pitanje iz C++ u Visual Studio?
Citat:
Konkretan primer. Kod:
char name[50]; scanf("%s", name); printf("%s", name); |
|
27.9.2015, 10:44 | #5 |
Starosedelac
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
|
Re: Pitanje iz C++ u Visual Studio?
U prevodu, scanf prima adresu gde će smestiti podatke...
Dal ćeš koristiti operator referenciranja (&) ili ćeš proslediti direktno pokazivač (što je opet adresa u memoriji) je apsolutno svejedno, dok god scanf dobije adresu. Problem nastaje ako imaš int n = 5; (obično neki junk ili 0, al nek bude 5). scanf("%d", n); je validan poziv i neće se buniti kompajler. Zašto? Jer je pokazivač u principu celobrojna vrednost sa brojem "ćelije" u memoriji. I taj poziv će na memorijsku lokaciju br 5 da upiše šta god pročita. Problem je jer će se desiti nedefinisano ponašanje, možda pukne, usled neuspešnog upisa a možda upiše 5icu tamo gde ne bi trebao. Uglavnom sevne segmentation ali nije nemoguće da ti prođe i napravi kuršlus kasnije. Stim što kada koristiš pokazivače, pazi dobro šta radiš, priroda im je takva da mogu da ti proizvedu ogromnu glavobolju vrlo lagano |
27.9.2015, 12:28 | #6 |
Član
Član od: 5.12.2014.
Poruke: 100
Zahvalnice: 0
Zahvaljeno jedanput na jednoj poruci
|
Re: Pitanje iz C++ u Visual Studio?
kada korstim u ovom kodu sa vasom ispravkom scanf prijavi gresku a kad koristim scanf_s prodje kompajler i sve radi a secam se kad sam ucio programiranje da sam radio scanf za ispis na ekran mze objasnjenje sto visual studio priajvi gresku?
|
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Vicevi | Oblivion | Cvet kompjutera | 5481 | 27.5.2022 5:52 |
Visual Studio 2013 | CoFigamer | Programiranje | 49 | 4.4.2015 10:35 |
Ulead Video Studio 10 | Pitanje | Hakinen92 | Video/TV softver | 0 | 17.7.2011 10:38 |
Potrebna knjiga za Visual Studio 2010 !!! | PRO_MILE | Programiranje | 16 | 3.12.2010 13:57 |
Microsoft Visual Studio 2008 | WoLwErInE_RuSkI | Programiranje | 1 | 18.6.2009 13:41 |