Advertisement
Guest User

Untitled

a guest
Dec 10th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. int read_line_fgetc(FILE *fp, char *line, int line_size){
  6. int c;
  7. int i = 0;
  8. while( (c = fgetc(fp)) > 0) {
  9. if( (char)c == '\n' ) {
  10. break;
  11. }
  12. line[i] = (char)c;
  13. i++;
  14. if( i > line_size ) {
  15. break;
  16. }
  17. }
  18.  
  19. line[i] = '\0';
  20. return i == 0 ? -1 : i;
  21. }
  22.  
  23. int read_line_fgets_strcpsn( FILE *fp, char *line, int line_size ) {
  24. if( fgets(line, line_size, fp) == NULL ) {
  25. return -1;
  26. }
  27.  
  28. line[strcspn(line, "\r\n")] = 0;
  29.  
  30. return 1;
  31. }
  32.  
  33. int read_line_fgets( FILE *fp, char *line, int line_size ) {
  34. if( fgets(line, line_size, fp) == NULL ) {
  35. return -1;
  36. }
  37. size_t len = strlen(line);
  38. if( line[len-1] == '\n' ) {
  39. line[len-1] = '\0';
  40.  
  41. if( line[len-2] == '\r' ) {
  42. line[len-2] = '\0';
  43. }
  44. }
  45.  
  46. return (int)len;
  47. }
  48.  
  49. int main(int argc, char *argv[]) {
  50. if( argc < 2 ) {
  51. exit(1);
  52. }
  53.  
  54. FILE *fp = fopen(argv[1], "r");
  55.  
  56. char line[1024];
  57. while( read_line_fgets_strcpsn(fp, line, 1024) > 0 ) {
  58. puts(line);
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement