J'ai du mal à transmettre la valeur de retour chariot à une fonction std :: string.Comment comparer une chaîne à un retour chariot 0x0D?
std::string parsedWord;
size_t found = str.find_first_not_of(' ');
if (found == std::string::npos) std::cout << "No non-whitespace characters found\n";
else
{
while (str.compare(found, 1, " ") || str.compare(found, 1, 0x0D)
// The last argument should be a const char*.
{
parsedWord += str[found]; found++;
}
}
Je veux spécifiquement comparer à la valeur 0x0D, parce que sur les systèmes Windows nouvelle ligne est CR LF et d'autres systèmes utilisent différents types, je veux juste vérifier contre 0x0D
Que diriez-vous de l'analyser en char, comme 'char (0x0D)'? – Sma
vous avez des caractères '\ r' et '\ n' pour les caractères de retour chariot de fin de ligne ... Mais pourquoi ne pas simplement utiliser la fonction isspace qui gèrera tous les espaces –
Quel est le but de la boucle que vous avez? Pour supprimer des espaces? Ensuite, je vous suggère de vérifier ce que la fonction 'compare' [* renvoie *] (http://en.cppreference.com/w/cpp/string/basic_string/compare#Return_value). –