Je veux ajouter une nouvelle (fstream) fonction dans un programme qui utilise déjà des tableaux pour traiter les chaînes ombles. Le problème est que le code ci-dessous donne des chaînes, et la seule façon que je peux penser à obtenir que cela fonctionne serait d'avoir une fonction intermédiaire qui copie les chaînes, char par char, dans un nouveau tableau de caractères, les transmettre aux les fonctions dans le programme, récupérer les résultats, puis copiez les résultats char par char dans la chaîne.getline() être utilisé pour obtenir un tableau de caractères d'un fstream
sûrement (je l'espère) il doit y avoir une meilleure façon?
Merci!
void translateStream(ifstream &input, ostream& cout) {
string inputStr;
string translated;
getline(input, inputStr, ' ');
while (!input.eof()) {
translateWord(inputStr, translated);
cout << translated;
getline(input, inputStr, ' ');
}
cout << inputStr;
la translateWord func:
void translateWord(char orig[], char pig[]) {
bool dropCap = false;
int len = strlen(orig)-1;
int firstVowel = findFirstVowel(orig);
char tempStr[len];
strcpy(pig, orig);
if (isdigit(orig[0])) return;
//remember if dropped cap
if (isupper(orig[0])) dropCap = true;
if (firstVowel == -1) {
strcat(pig, "ay");
// return;
}
if (isVowel(orig[0], 0, len)) {
strcat(pig, "way");
// return;
} else {
splitString(pig,tempStr,firstVowel);
strcat(tempStr, pig);
strcat(tempStr, "ay");
strcpy(pig,tempStr);
}
if (dropCap) {
pig[0] = toupper(pig[0]);
}
}
Il serait utile de savoir ce que translateword() ne - s'il vous plaît poster au moins la déclaration. –
ajouté maintenant Neil - (il fait une traduction en latin cochon) –
Cela est voué à l'échec d'une manière très horrible! –