मैं विजुअल स्टूडियो कंसोल में एंटर का उपयोग करके लूप के लिए तोड़ने का एक तरीका ढूंढ रहा हूं।
do
{
std::cin >> userInput;
if (userInput == '\n')
break;
lineStorage[lineLength] = userInput;
lineLength++;
}while(true);
मेरे पास अब तक यही है, लेकिन न्यूलाइन कैरेक्टर उस चीज़ के लिए काम नहीं करेगा जो मुझे चाहिए, कोई सुझाव या अंतर्दृष्टि मदद करेगी, धन्यवाद!
पी.एस. मैं एंटर बटन के परिणामस्वरूप न्यूलाइन कैरेक्टर के अलावा किसी सेंटीनेल वैल्यू का उपयोग नहीं कर सकता।
पी.एस. अधिक संदर्भ:
char lineStorage[80] = { 'a' };
char userInput = ' ';
const char lineEnd = '\n';
int lineLength = 0;
std::cout << "Enter a line:";
do
{
std::cin >> userInput;
if (userInput == '\n')
break;
lineStorage[lineLength] = userInput;
lineLength++;
} while (true);
3 जवाब
>>
के साथ पढ़ना डिफ़ॉल्ट रूप से व्हाइटस्पेस छोड़ देता है, और एक नई लाइन व्हाइटस्पेस है। मैं इसके बजाय getline()
का उपयोग करने का सुझाव देता हूं:
for(int i = 0; i < 80; i++) {
if (!getline(std::cin, userInput) || userInput.empty())
break;
lineStorage[lineLength] = userInput;
lineLength++;
}
यदि आपका lineStorage
वास्तव में अलग-अलग शब्दों को संग्रहीत करने वाला है, तो आप शब्दों को संग्रहीत करने से पहले userInput
को रिक्त स्थान पर विभाजित कर सकते हैं।
संपादित करें: अब जब आपने दिखाया है कि userInput
एक एकल वर्ण है, तो मुझे लगता है कि आपको केवल std::cin.get(userInput)
एक बार में एक अक्षर पढ़ने के लिए। इससे आपको अपने मूल कोड की शैली में न्यूलाइन मिल जाएगी।
अधिक स्पष्ट होगा
#include <stdio.h>
#include <stddef.h>
int main(int argc , char *argv[])
{
char t[70]={0},x;
while(1)
{
scanf("%[^ ^\n]%c",t ,&x);
if(x == '\n') break;
}
}
मुझे दूसरा जवाब बेहतर लगता है, लेकिन ऐसा कुछ भी काम कर सकता है:
do {
cin.get(userInput);
if (userInput == 10) {
break;
} else {
lineStorage[lineLength] = userInput;
lineLength++;
}
} while (true);
संबंधित सवाल
नए सवाल
c++
C ++ एक सामान्य-प्रयोजन प्रोग्रामिंग भाषा है। यह मूल रूप से C के विस्तार के रूप में डिज़ाइन किया गया था और इसमें एक समान सिंटैक्स है, लेकिन यह अब पूरी तरह से अलग भाषा है। C ++ कंपाइलर के साथ संकलित कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें। विशिष्ट मानक संशोधन [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] या [C ++ 23], आदि से संबंधित प्रश्नों के लिए संस्करण-विशिष्ट टैग का उपयोग करें। ।