0
votes

Comment retourner le temps en tant que DD: HH: MM: SS?


2 commentaires

Qu'attendez-vous Day de retour, STD :: String (":"), heure, STD :: String (":"), minute, std :: String (":"), Deuxièmement; pour te donner? Pourquoi la fonction a-t-elle le type de retour int ?


Vous voulez une chaîne , mais vous retournez int . Cela fait non sens.


4 Réponses :


0
votes
char buff[100] = {0};
sprintf_s(buff, 100, "%02u:%02u", hours, minutes);

7 commentaires

Je ne sais pas comment puis-je utiliser cela dans mon code.can vous le faites sur mon code s'il vous plaît?


Pourquoi utiliser sprintf en C ++? Pourquoi pas std :: chaîne ?


Parce que Sprintf est également C ++.


@Michaelchourdakis true. C'est est . Mais cela fait partie des trucs clunky NULL-TARIND-STRENTINÉS DONT HÉLÉMENTÉS DE C ET QUE NOIONE DEVRAIT UTILISER SAUMUME SAUF. C ++ peut faire mieux que cette chose héritée.


Sprintf (et toute la famille Printf) n'a pas de remplacement réel C ++. Même si 99% de la langue est moderne, il n'est pas nécessaire d'utiliser quelque chose de inférieur simplement parce qu'il est plus moderne que celui plus âgé. Et dans tous les cas, ma réponse faisait référence à la façon dont il devrait éviter la ligne de retour qu'il a.


Il se peut que vous puissiez utiliser des fonctions C telles que Sprintf, comme lorsque vous avez des exigences pour eux, ou vos efforts sont de fournir une formulaire de support «End-de-vie», un code plus ancien (juste pour durer un peu plus longtemps). Je pense que ce sont des seules raisons de penser à eux. Mais le code de style C n'est pas pour de nouveaux efforts. Pas pour apprendre C ++. Kudo est à vous, Alex Webster, pour votre date de classe. Vos efforts ne sont clairement pas l'hospice pour le code des autres peuples ..


@jes: Utilisation std :: string ne résout pas les exigences de mise en forme, sauf si vous êtes prêt à écrire de longues solutions de contournement, difficiles à écrire et difficiles à lire. Il n'y a pas de valeur dans le dogmatique de rejeter le code de la bibliothèque C juste parce que c'est C code de bibliothèque. C ++ actuellement n'a rien de tout aussi succinct à offrir (jusqu'à ce que c ++ 20 introduit STD: : Chrono :: Format ).



0
votes

Pourquoi ne pas tout mettre dans une corde? Créez une chaîne, par exemple: String FULDDATE et ajoutez-le, puis retournez-le


9 commentaires

Pouvez-vous me donner un exemple sur mon code s'il vous plaît?


Je suis désolé mon internet est assez buggy. Ce que je voulais dire est: String FULLDATE; Fulldate = to_string (jour) + ":" + to_string (heure) + ":" + to_string (minute) + ":" + to_string (seconde);


Et lorsque vous avez cette chaîne, utilisez simplement le retour de Fulldate pour le renvoyer. En outre, votre fonction doit être "string getdate", pas int.


il ne reconnaît pas to_string (int)


Quel compilateur utilisez-vous ?


to_string est en tête de tête


J'utilise Visual Studio


C ++ a aussi Stringstream (en-tête ), que vous pouvez utiliser (juste comme COUT) pour construire la chaîne. Donc, si vous pouvez couter ce que vous voulez, essayez un StringStream. L'accès à la chaîne 'Inside-Stringstream' est simple. Voir la documentation.


@Alexwebster pour std :: to_string Vous avez besoin d'au moins C ++ 11 prise en charge de votre compilateur.



2
votes

Votre int getDate (void) fonction est fausse. Pour formater les variables de membre au DD: HH: MM: SS , vous pourriez

  1. soit réécrire la fonction getDate de telle manière que celle-ci retourne un std :: string après la concaténation de la classe membres Ensemble pour DD: HH: MM: SS Format. XXX

  2. ou fournit un flux de sortie opérateur <<< / code> Surcharge Lequel est l'habituel . XXX


0 commentaires

0
votes

Pourquoi n'utilisez-vous pas la structure 'TM'? STRIT TM - C ++ Référence

Voici du code que j'ai toujours " sur la manche ". xxx


1 commentaires

Merci pour votre solution, mais c'est un devoir et je ne suis pas capable d'utiliser cette