Если легким Вы имеете в виду строки кода, которые легко дешифровать, но на неэффективный шанс?
string[] lines = System.IO.File.RealAllLines($filename);
int cnt = lines.Count();
Это - вероятно, самый быстрый способ знать сколько строк.
Вы могли также сделать (в зависимости от того, если Вы буферизуете его в)
#for large files
while (...reads into buffer){
string[] lines = Regex.Split(buffer,System.Enviorment.NewLine);
}
существуют другие многочисленные пути, но одно из вышеупомянутого, вероятно, с чем Вы пойдете.
scanf
оставляет входной поток, указывающий на \ n
. В вашем случае это не имеет значения: каждый раз, когда он вызывается, scanf
будет перемещаться, пока не найдет следующий непробельный символ. Таким образом, указание 10 строк name, a, b
в качестве ввода будет работать так, как вы ожидаете.
Но учтите следующее:
scanf("%d", &a);
fgets(str, 20, stdin);
fgets
читает, пока не найдет первый символ новой строки, поэтому str
просто получит значение \ n
, а fgets
не прочитает следующую строку ввода.