Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C] Leggere input da stdin per righe

    Salve a tutti,
    ho un problema che non riesco a risolvere:

    devo fare un programma che legga da standard input
    un testo per righe e utilizzi ogni riga come stringa (array di
    caratteri) per lavorarla tramite un certo metodo..

    cosa utilizzo per far leggere l'input da stdin a righe?

  2. #2
    Ciao,
    io utilizzerei una scanf

    codice:
    char strVal[201];
    scanf_s("%s", strVal, 200);
    in questo caso prendi dallo standard input fino a 200 caratteri.
    Il blog sullo sviluppo software, lezioni online gratuite su VC/C++, VB.NET, C#, PHP, Windows e Linux.

  3. #3
    O più semplicemente potresti usare la fgets.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Io ho utilizzato la fgets e fa quasi quello che serve,
    nel senso che prende la riga, però quando clicco su invio
    per scrivere una nuova riga, questa non me lo consente
    utilizzando la stringa fino al carattere di invio...

    per poter scrivere un testo di più righe e poi utilizzarlo tutto
    nel metodo, devo memorizzare una riga per volta
    o c'è un metodo più semplice?


    o forse non capisco bene la consegna dell'esercizio..
    "scrivere un programma che letto un testo da stdin per righe
    visualizzi lo stdout ecc ecc" (l'ultima parte spiega la funzione
    che ho già fatto)

  5. #5
    La fgets prende il testo una riga alla volta; con la scanf e un po' di magia puoi anche recuperare il testo tutto insieme (stabilendo però un delimitatore finale che segni l'effettiva fine della stringa), ma non ti conviene perché dovresti creare un buffer molto grande per l'input, e se non dovesse bastare dovresti richiamare scanf più volte per svuotare il suo buffer nel suo (e a quel punto saresti in una situazione analoga a più fgets).
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.