Ben bir öğrencinin okul için bir projem var, ben çoğunlukla PHP'de programlama yapıyorum, bu yüzden C++ benim güçlü tarafım değil :) Lütfen bana söyleyeyim, cin dizesinde bahsettiğim değişkeni değiştirmek mümkün mü? Ben bir B ADD gibi bir şey yapacak Yukarıdaki koddaGiriş dizesinde belirtilen değişken nasıl değiştirilir?
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
string A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, R, Q, S, T, U, V, W, X, Y, Z;
string instrukcja;
string krok[3];
int i = 0;
string MAKENULL()
{
return " ";
}
void WRITE(string x)
{
cout << x;
}
int main()
{
// get instruction Begin
char s[10];
scanf("%10[0-9a-zA-Z ]", s);
istringstream iss(s);
while(iss)
{
string sub;
iss >> sub;
krok[i] = sub;
i++;
}
// get instruction End
if (krok[0] == "MAKENULL")
{
"" Variable in krok[1] "" = MAKENULL();
}
if (krok[0] == "WRITE")
{
WRITE("" Variable in krok[1] "");
}
if (krok[0] == "OPPOSITE")
{
OPPOSITE("" Variable in krok[1] "", "" Variable in krok[2] "")
}
}
ve A (diğer bir dize sopa) A => A + B oldu olmalıdır: Belki aşağıda benim kod daha anlaşılır olacaktır. Ana soru, bir değişkeni scanf olarak değiştirebilir miyim?
#include <map>
// ...
std::map<std::string, std::string> varMap;
anahtar değişken adıdır
: A, B, C ve değerini
Ne yapmak istediğinizi tam olarak açık değil. İki dizeyi birleştirmek mi istiyorsun? ve OPPOSITE() nedir? – user463035818
Belki tüm projeyi açıklamaya çalışacağım. Kayıtlar (AZ) olacak ve bu program sadece komutla (döngü içinde) bir girdi alacak (ADD A, Z; OPPOZİT A, W; WRITE A vb ...) ve şimdi ihtiyacım olan noktaya işaret edebilirim scanf/cin'te belirli bir değişken değişecek mi? –
Eğer sizi doğru anlıyorsam, değerleri temsil eden değişkenlere (yani, A dizesi, B, ... ') dizgi gösterimlerinden (" A "," B "...) bir kaç eşleme sağlamanız gerekir. . 'Std :: map' tuşlarını kullanabilirsiniz. Burada anahtar, 'scanf' den aldığınız 'string 've değer (yani haritadaki ikinci dizge)' dir. Değiştirmek istediğiniz değer –
user463035818