Question: I have a file stream in C and I want to know how many lines are in it without iterating through the file. Each line is the same length. How might I go about this?

Answer: 
How about something like this:

* Do a `fgets` and find out how long one line is
* Find the size of the file using `fseek` and `ftell`

```
fseek(fp, 0, SEEK_END);
size = ftell(fp);

```
* Divide by the size of the line

You can also use `fseeko` and `ftello` which work with `off_t`.
If it is safe to assume that all lines are of equal length, you can simply read in the first line, get its length, then get the file size, and divide file size by line length.

This will only work with fixed-width encodings (ASCII-7, the various 8-bit ANSI encodings, UTF-32); with variable-width encodings (e.g. UTF-8), you will have to scan the entire file, because string length is not necessarily proportional to the number of bytes.