const char * ішіне файлды жазу үшін түрлендіреді

C ++ -де келесі код бар және файлға жазу үшін бүтін санды const char * түрлендіргісі келеді. Мен бұл функцияны қолдануға тырыстым, бірақ бұл жұмыс істемейді.

FILE * pFile;
pFile = fopen ("myfile.txt","w");

int a = 5;

fputs (&a,pFile);
fclose (pFile);

Алдын-ала рақмет

4
«Жұмыс істемейді» пайдалы емес. Адамдар сізді «түзетпесіз» деп айтқысы келеді, дұрыс?
қосылды автор tenfour, көзі

4 жауаптар

fputs үшін бірінші параметр char * , сондықтан көрсетілетін код анық емес.

Сіз Мен айтқым келеді, бірақ олар жұмыс істемейді, бірақ ол жұмыс істемейді. , бірақ бұл шешімдер болып табылады және олардың жұмыс істемеуіне ешқандай себеп жоқ.

int a = 5;

//the C way
FILE* pFile = fopen("myfile.txt","w");
char buffer[12];
atoi(a, buffer, 10);
fputs(buffer, pFile); 
fclose (pFile);
//or
FILE* pFile = fopen("myfile.txt","w");
fprintf(pfile, "%d", a);
fclose(pfile);

//the C++ way
std::ofstream file("myfile.txt");
std::stringstream ss;
ss << a;
file << ss.str();
//or
std::ofstream file("myfile.txt");
file << a;
4
қосылды
«Ағындарды кесіп өтпе!» ofstream үшін fputs жүйесіне ең жақын ofstream :: write (const char_type * _Str, _Count)
қосылды автор Mooing Duck, көзі
Менің қателігім екеуі де, екеуі де басқаруға тырысты. Көп рақмет.
қосылды автор MatthewK, көзі

Try itoa(a) it converts an i nt to a rray hence itoa

1
қосылды
int aroi үшін atoi
қосылды автор qwertymk, көзі
Мен strtol жол-ин-инт ( long шынымен) бағыты үшін көп жанкүйімін. Бұл сандық базаны орнатуға мүмкіндік береді және 0-ден 0-ден 12-ге дейінгі аралықты орнатуға болады (ол 0x1234 және басқаларды талдауға мүмкіндік береді). Және бұл маған бірліктерді талдауға тырысатын нөмірдің соңынан кейіпкерге көрсеткіш береді.
қосылды автор Mike DeSimone, көзі
itoa - стандартты емес функция. құжаттамасынан : «Бұл функция ANSI-C-да анықталмаған және ол C ++-ның бөлігі, бірақ кейбір компиляторлар қолдайды. «
қосылды автор Vicky Chijwani, көзі

fprintf -де қандай қате бар? Немесе snprintf және нәтиже fputs .

0
қосылды
@MikeDeSimone, келісілді.
қосылды автор littleadv, көзі
sprintf орнына snprintf пайдалану әдетіне кіріңіз.
қосылды автор Mike DeSimone, көзі

Түрді-құсбелгіні пайдалану. boost :: lexical_cast пайдалануыңызға болады

Жолда бір рет c_str() мүшесінің функциясын const char *

0
қосылды